下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、全國(guó)青少年信息學(xué)奧林匹克聯(lián)賽算法基礎(chǔ)篇學(xué)習(xí)過(guò)程序設(shè)計(jì)的人對(duì)算法這個(gè)詞并不陌生,從廣義上講,算法是指為解決一個(gè)問(wèn)題而采用的方法和步驟;從程序計(jì)設(shè)的角度上講,算法是指利用程序設(shè)計(jì)語(yǔ)言的各種語(yǔ)句,為解決特定的問(wèn)題而構(gòu)成的各種邏輯組合。我們?cè)诰帉?xiě)程序的過(guò)程就是在實(shí)施某種算法,因此程序設(shè)計(jì)的實(shí)質(zhì)就是用計(jì)算機(jī)語(yǔ)言構(gòu)造解決問(wèn)題的算法。算法是程序設(shè)計(jì)的靈魂,一個(gè)好的程序必須有一個(gè)好的算法,一個(gè)沒(méi)有有效算法的程序就像一個(gè)沒(méi)有靈魂的軀體。算法具有五個(gè)特征:1、有窮性: 一個(gè)算法應(yīng)包括有限的運(yùn)算步驟,執(zhí)行了有窮的操作后將終止運(yùn)算,不能是個(gè)死循環(huán); 2、確切性: 算法的每一步驟必須有確切的定義,讀者理解時(shí)不會(huì)產(chǎn)生二義
2、性。并且,在任何條件下,算法只有唯一的一條執(zhí)行路徑,對(duì)于相同的輸入只能得出相同的輸出。如在算法中不允許有“計(jì)算8/0”或“將7或8與x相加”之類(lèi)的運(yùn)算,因?yàn)榍罢叩挠?jì)算結(jié)果是什么不清楚,而后者對(duì)于兩種可能的運(yùn)算應(yīng)做哪一種也不知道。 3、輸入:一個(gè)算法有0個(gè)或多個(gè)輸入,以描述運(yùn)算對(duì)象的初始情況,所謂0個(gè)輸入是指算法本身定義了初始條件。如在5個(gè)數(shù)中找出最小的數(shù),則有5個(gè)輸入。4、輸出:一個(gè)算法有一個(gè)或多個(gè)輸出,以反映對(duì)輸入數(shù)據(jù)加工后的結(jié)果,這是算法設(shè)計(jì)的目的。它們是同輸入有著某種特定關(guān)系的量。如上述在5個(gè)數(shù)中找出最小的數(shù),它的出輸出為最小的數(shù)。如果一個(gè)程序沒(méi)有輸出,這個(gè)程序就毫無(wú)意義了; 5、可行性
3、: 算法中每一步運(yùn)算應(yīng)該是可行的。算法原則上能夠精確地運(yùn)行,而且人能用筆和紙做有限次運(yùn)算后即可完成。 如何來(lái)評(píng)價(jià)一個(gè)算法的好壞呢?主要是從兩個(gè)方面:一是看算法運(yùn)行所占用的時(shí)間;我們用時(shí)間復(fù)雜度來(lái)衡量,例如:在以下3個(gè)程序中,(1)x:=x+1(2)for i:=1 to n do x:=x+1(3)for i:=1 to n do for j:=1 to n do x:=x+1含基本操作“x增1”的語(yǔ)句x:=x+1的出現(xiàn)的次數(shù)分別為1,n和n2則這三個(gè)程序段的時(shí)間復(fù)雜度分別為O(1),O(n),O(n2),分別稱(chēng)為常量階、線性階和平方階。在算法時(shí)間復(fù)雜度的表示中,還有可能出現(xiàn)的有:對(duì)數(shù)階O(l
4、og n),指數(shù)階O(2n)等。在n很大時(shí),不同數(shù)量級(jí)的時(shí)間復(fù)雜度有:O(1)< O(log n)<O(n)< O(nlog n)<O(n2) <O(n3) <O(2n),很顯然,指數(shù)階的算法不是一個(gè)好的算法。二是看算法運(yùn)行時(shí)所占用的空間,既空間復(fù)雜度。由于當(dāng)今計(jì)算機(jī)硬件技術(shù)發(fā)展很快,程序所能支配的自由空間一般比較充分,所以空間復(fù)雜度就不如時(shí)間復(fù)雜度那么重要了,有許多問(wèn)題人們主要是研究其算法的時(shí)間復(fù)雜度,而很少討論它的空間耗費(fèi)。時(shí)間復(fù)雜性和空間復(fù)雜性在一定條件下是可以相互轉(zhuǎn)化的。在中學(xué)生信息學(xué)奧賽中,對(duì)程序的運(yùn)行時(shí)間作出了嚴(yán)格的限制,如果運(yùn)行時(shí)間超出了限定就
5、會(huì)判錯(cuò),因此在設(shè)計(jì)算法時(shí)首先要考慮的是時(shí)間因素,必要時(shí)可以以犧牲空間來(lái)?yè)Q取時(shí)間,動(dòng)態(tài)規(guī)劃法就是一種以犧牲空間換取時(shí)間的有效算法。對(duì)于空間因素,視題目的要求而定,一般可以不作太多的考慮。我們通過(guò)一個(gè)簡(jiǎn)單的數(shù)值計(jì)算問(wèn)題,來(lái)比較兩個(gè)不同算法的效率(在這里只比較時(shí)間復(fù)雜度)。例:求N!所產(chǎn)生的數(shù)后面有多少個(gè)0(中間的0不計(jì))。算法一:從1乘到n,每乘一個(gè)數(shù)判斷一次,若后面有0則去掉后面的0,并記下0的個(gè)數(shù)。為了不超出數(shù)的表示范圍,去掉與生成0無(wú)關(guān)的數(shù),只保留有效位數(shù),當(dāng)乘完n次后就得到0的個(gè)數(shù)。(pascal程序如下)vari,t,n,sum:longint; begint:=0; sum:=1;re
6、adln(n);for i:=1 to n dobegin sum:=sum*i; while sum mod 10=0 do begin sum:=sum div 10; inc(t);計(jì)數(shù)器增加1 end; sum:=sum mod 1000;舍去與生成0無(wú)關(guān)的數(shù)end;writeln(t:6);end.算法二:此題中生成O的個(gè)數(shù)只與含5的個(gè)數(shù)有關(guān),n!的分解數(shù)中含5的個(gè)數(shù)就等于末尾O的個(gè)數(shù),因此問(wèn)題轉(zhuǎn)化為直接求n!的分解數(shù)中含5的個(gè)數(shù)。var t,n:integer;begin readln(n);t:=0;repeat n:=n div 5 ; inc(t,n); 計(jì)數(shù)器增加nuntil n<5;writeln(t:6);end.分析對(duì)比兩種算法就不難看出,它們的時(shí)間復(fù)雜度分別為O(N)、O(logN),算法二的執(zhí)行時(shí)間遠(yuǎn)遠(yuǎn)小于算法一的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年海南省建筑安全員考試題庫(kù)
- 2025年海南建筑安全員知識(shí)題庫(kù)及答案
- 中國(guó)傳統(tǒng)文化主題:對(duì)聯(lián)
- 長(zhǎng)度與時(shí)間的測(cè)量課件
- 《電路中的能量轉(zhuǎn)化》課件
- 石油加工原油組成教學(xué)課件
- 病理生理學(xué)課件凝血和抗凝血平衡紊亂
- 一年級(jí)語(yǔ)文下冊(cè)《語(yǔ)文園地六》課件
- 《心血管急癥》課件
- 固定收益點(diǎn)評(píng)報(bào)告:把握跨年后的信用配置窗口
- 一年級(jí)上冊(cè)數(shù)學(xué)教案-第3單元 加與減(一)9 小雞吃食(北師大版)
- 犀角多肽與免疫細(xì)胞相互作用的機(jī)制研究
- 中國(guó)食物成分表2018年(標(biāo)準(zhǔn)版)第6版
- 植樹(shù)問(wèn)題專(zhuān)項(xiàng)講義(五大類(lèi)型+方法+練習(xí)+答案)六年級(jí)數(shù)學(xué)小升初總復(fù)習(xí)
- 二年級(jí)上冊(cè)數(shù)學(xué)豎式計(jì)算300道帶答案
- 組織學(xué)與胚胎學(xué)課程教學(xué)大綱
- 玻璃硝酸鉀加硬工藝
- 珠海金灣區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)達(dá)標(biāo)卷(含答案)
- 廣西壯族自治區(qū)欽州市浦北縣2023-2024學(xué)年七年級(jí)上學(xué)期期末歷史試題
- 《輸電線路防雷保護(hù)》課件
- 《中國(guó)八大菜系》課件
評(píng)論
0/150
提交評(píng)論