1、算法是解決問題的清晰指令和策略機(jī)制。
2、算法描述可以有多種表達(dá)方法,一般用自然語言、結(jié)構(gòu)化流程圖和偽代碼描述。
3、偽代碼是介于自然語言和計(jì)算機(jī)程序語言之間的一種算法描述。它也是專業(yè)軟件開發(fā)人員描述算法的一種常用方法。
4、算法是程序設(shè)計(jì)的“靈魂”,世界著名計(jì)算機(jī)科學(xué)家尼克勞斯·沃斯(N·Wirth)指出:算法 + 數(shù)據(jù)結(jié)構(gòu)=程序。
5、程序設(shè)計(jì)語言的發(fā)展經(jīng)歷了機(jī)器語言、匯編語言到高級(jí)語言的過程。其中計(jì)算機(jī)可以直接識(shí)別的是機(jī)器語言,它是由“0”和“1”構(gòu)成的代碼。
擴(kuò)展資料
算法的評(píng)定標(biāo)準(zhǔn):
同一問題可用不同算法解決,而一個(gè)算法的質(zhì)量?jī)?yōu)劣將影響到算法乃至程序的效率。算法分析的目的在于選擇合適算法和改進(jìn)算法。一個(gè)算法的評(píng)價(jià)主要從時(shí)間復(fù)雜度和空間復(fù)雜度來考慮。
1、時(shí)間復(fù)雜度:算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量。
一般來說,計(jì)算機(jī)算法是問題規(guī)模n的函數(shù)f(n)算法的時(shí)間復(fù)雜度也因此記做:T(n)=Ο(f(n))。因此,問題的規(guī)模n 越大,算法執(zhí)行的時(shí)間的增長(zhǎng)率與f(n) 的增長(zhǎng)率正相關(guān),稱作漸進(jìn)時(shí)間復(fù)雜度
2、空間復(fù)雜度:算法的空間復(fù)雜度是指算法需要消耗的內(nèi)存空間。
其計(jì)算和表示方法與時(shí)間復(fù)雜度類似,一般都用復(fù)雜度的漸近性來表示。同時(shí)間復(fù)雜度相比,空間復(fù)雜度的分析要簡(jiǎn)單得多。
3、正確性:算法的正確性是評(píng)價(jià)一個(gè)算法優(yōu)劣的最重要的標(biāo)準(zhǔn)。
4、可讀性:算法的可讀性是指一個(gè)算法可供人們閱讀的容易程度。
5、健壯性:健壯性是指一個(gè)算法對(duì)不合理數(shù)據(jù)輸入的反應(yīng)能力和處理能力,也稱為容錯(cuò)性。
參考資料:搜狗百科—算法
迭代就是用新計(jì)算的結(jié)果去代替以前的數(shù),能解決多個(gè)數(shù)求和,累加等問題,例如:
求1到100的和,用迭代思想;
for(i=1;it=t+i;(用t+i代替前面的t)
冒泡就是排序,讓后面的數(shù)和前面的數(shù)比較大小,然后改變他們的順序,得到我們想要的序列,一般解決排序和找特殊數(shù)等問題,例如:
對(duì)1,4,28,67,34,56,23,46,43進(jìn)行排序。
窮舉,就是舉例,窮舉法是最常見的密碼破解方法。也就是一個(gè)一個(gè)地試。例如:
密碼為123,窮舉法從1位數(shù)0開始,一直到碰對(duì)為止。 一般來說,窮舉法適用于6位以下純數(shù)字密碼,超過6位數(shù)或較復(fù)雜窮舉法就很難了,即使可以,也需要很長(zhǎng)時(shí)間。
算法是物理層面上解決問題方法的一種描述。
算法:就是問題的解決思路
算法的特征:輸入、輸出、有窮性、確定性、可行性
大O表示法:最接近表示的特征函數(shù)的表示方法(漸進(jìn)函數(shù)):O(n^7)
分析算法要考慮:最優(yōu)時(shí)間復(fù)雜度、平均時(shí)間復(fù)雜度、最壞(最長(zhǎng))時(shí)間復(fù)雜
時(shí)間復(fù)雜度的幾條基本計(jì)算規(guī)則
1. 基本操作,即只有常數(shù)項(xiàng),認(rèn)為其時(shí)間復(fù)雜度為O(1)
2. 順序結(jié)構(gòu),時(shí)間復(fù)雜度按加法進(jìn)行計(jì)算
3. 循環(huán)結(jié)構(gòu),時(shí)間復(fù)雜度按乘法進(jìn)行計(jì)算
4. 分支結(jié)構(gòu),時(shí)間復(fù)雜度取最大值
5. 判斷一個(gè)算法的效率時(shí),往往只需要關(guān)注操作數(shù)量的最高次項(xiàng),其它次要項(xiàng)和常數(shù)項(xiàng)可以忽略
6. 在沒有特殊說明時(shí),我們所分析的算法的時(shí)間復(fù)雜度都是指最壞時(shí)間復(fù)雜度
1、分析問題。
用電腦來解決問題時(shí),首先電腦要對(duì)問題進(jìn)行定性、定量的分析,然后才能設(shè)計(jì)算法。定性分析法是對(duì)問題進(jìn)行“質(zhì)”的方面的分析,確定問題的性質(zhì),定量分析法,是對(duì)要解決的問題的數(shù)量特征、數(shù)量關(guān)系與數(shù)量變化進(jìn)行分析的方法。
2、設(shè)計(jì)算法。 算法(Algorithm)是指解題方案的準(zhǔn)確而完整的描述,是一系列解決問題的清晰指令,算法代表著用系統(tǒng)的方法描述解決問題的策略機(jī)制。
也就是說,能夠?qū)σ欢ㄒ?guī)范的輸入,在有限時(shí)間內(nèi)獲得所要求的輸出。如果一個(gè)算法有缺陷,或不適合于某個(gè)問題,執(zhí)行這個(gè)算法將不會(huì)解決這個(gè)問題。
不同的算法可能用不同的時(shí)間、空間或效率來完成同樣的任務(wù)。一個(gè)算法的優(yōu)劣可以用空間復(fù)雜度與時(shí)間復(fù)雜度來衡量。
3、編寫程序。 設(shè)計(jì)完算法后,就要使用某種程序設(shè)計(jì)語言編寫程序代碼,并最終得到相應(yīng)結(jié)果。
編程的語言包括匯編語言、機(jī)器語言和高級(jí)語言。高級(jí)語言中最簡(jiǎn)單、最常用的是Visual Basic語言和Pascal語言。
擴(kuò)展資料: 人類解決問題:靠知識(shí)、見識(shí)、常識(shí)、經(jīng)驗(yàn)、直覺、甚至賭博; 計(jì)算機(jī)解決問題:靠知識(shí)庫、推理、推演、演繹、計(jì)算和預(yù)測(cè)以及概率分析。 人類會(huì)受外界因素和個(gè)人情感的干擾,導(dǎo)致同樣的條件不同的結(jié)果;計(jì)算機(jī)則不受干擾,滿足某個(gè)或某些條件,就會(huì)執(zhí)行預(yù)先設(shè)定的命令。
利用計(jì)算機(jī)程序解決問題的基本過程: 了解利用計(jì)算機(jī)解決問題的基本過程。 了解問題分析與算法設(shè)計(jì)之間的關(guān)系。
了解算法的基本特征。 能用自然語言、流程圖或偽代碼描述算法。
了解程序設(shè)計(jì)語言產(chǎn)生與發(fā)展過程。 參考資料來源:百度百科-計(jì)算機(jī)。
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時(shí)間:2.696秒