版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1(1)用計(jì)算機(jī)求解問(wèn)題的步驟:)用計(jì)算機(jī)求解問(wèn)題的步驟:1、問(wèn)題分析2、數(shù)學(xué)模型建立3、算法設(shè)計(jì)與選擇4、算法指標(biāo)5、算法分析6、算法實(shí)現(xiàn)7、程序調(diào)試8、結(jié)果整理文檔編制(2)算法定義:算法是指在解決問(wèn)題時(shí),按照某種機(jī)械步驟一定可以得到問(wèn)題結(jié)果的處理)算法定義:算法是指在解決問(wèn)題時(shí),按照某種機(jī)械步驟一定可以得到問(wèn)題結(jié)果的處理過(guò)程過(guò)程(3)算法的三要素)算法的三要素1、操作2、控制結(jié)構(gòu)3、數(shù)據(jù)結(jié)構(gòu)算法具有以下算法具有以下5個(gè)屬性個(gè)屬性:
2、有窮性:一個(gè)算法必須總是在執(zhí)行有窮步之后結(jié)束,且每一步都在有窮時(shí)間內(nèi)完成。確定性:算法中每一條指令必須有確切的含義。不存在二義性。只有一個(gè)入口和一個(gè)出口可行性:一個(gè)算法是可行的就是算法描述的操作是可以通過(guò)已經(jīng)實(shí)現(xiàn)的基本運(yùn)算執(zhí)行有限次來(lái)實(shí)現(xiàn)的。輸入:一個(gè)算法有零個(gè)或多個(gè)輸入,這些輸入取自于某個(gè)特定對(duì)象的集合。輸出:一個(gè)算法有一個(gè)或多個(gè)輸出,這些輸出同輸入有著某些特定關(guān)系的量。算法設(shè)計(jì)的質(zhì)量指標(biāo):算法設(shè)計(jì)的質(zhì)量指標(biāo):正確性:算法應(yīng)滿足具體問(wèn)
3、題的需求;可讀性:算法應(yīng)該好讀,以有利于讀者對(duì)程序的理解;健壯性:算法應(yīng)具有容錯(cuò)處理,當(dāng)輸入為非法數(shù)據(jù)時(shí),算法應(yīng)對(duì)其作出反應(yīng),而不是產(chǎn)生莫名其妙的輸出結(jié)果。效率與存儲(chǔ)量需求:效率指的是算法執(zhí)行的時(shí)間;存儲(chǔ)量需求指算法執(zhí)行過(guò)程中所需要的最大存儲(chǔ)空間。一般這兩者與問(wèn)題的規(guī)模有關(guān)。經(jīng)常采用的算法主要有迭代法、分而治之法、貪婪法、動(dòng)態(tài)規(guī)劃法、回溯法、分支限界法迭代法迭代法也稱“輾轉(zhuǎn)法”也稱“輾轉(zhuǎn)法”,是一種不斷用變量的舊值遞推出新值的解決問(wèn)題的
4、方,是一種不斷用變量的舊值遞推出新值的解決問(wèn)題的方法。法。利用迭代算法解決問(wèn)題,需要做好以下三個(gè)方面的工作:一、確定迭代模型。在可以用迭代算法解決的問(wèn)題中,至少存在一個(gè)直接或間接地不斷由舊值遞推出新值的變量,這個(gè)變量就是迭代變量。二、建立迭代關(guān)系式。所謂迭代關(guān)系式,指如何從變量的前一個(gè)值推出其下一個(gè)值的公式(或關(guān)系)。迭代關(guān)系式的建立是解決迭代問(wèn)題的關(guān)鍵,通常可以使用遞推或倒推的方法來(lái)完成。三、對(duì)迭代過(guò)程進(jìn)行控制。在什么時(shí)候結(jié)束迭代過(guò)程
5、?這是編寫迭代程序必須考慮的問(wèn)題。不能讓迭代過(guò)程無(wú)休止地重復(fù)執(zhí)行下去。迭代過(guò)程的控制通??煞譃閮煞N情況:一種是所需的迭代次數(shù)是個(gè)確定的值,可以計(jì)算出來(lái);另一種是所需的迭代次數(shù)無(wú)法確定。對(duì)于前一種情況,可以構(gòu)建一個(gè)固定次數(shù)的循環(huán)來(lái)實(shí)現(xiàn)對(duì)迭代過(guò)程的控制;對(duì)于后一種情況,需要進(jìn)一步分析出用來(lái)結(jié)束迭代過(guò)程的條件。編寫計(jì)算斐波那契(編寫計(jì)算斐波那契(Fibonacci)數(shù)列的第)數(shù)列的第n項(xiàng)函數(shù)項(xiàng)函數(shù)fib(n)。斐波那契數(shù)列為:0、1、1、2、
6、3、……,即:fib(0)=0fib(1)=13(4)該問(wèn)題所分解出的各個(gè)子問(wèn)題是相互獨(dú)立的,即子問(wèn)題之間不包含公共的子子問(wèn)題。3、分治法的基本步驟分治法在每一層遞歸上都有三個(gè)步驟:(1)分解:將原問(wèn)題分解為若干個(gè)規(guī)模較小,相互獨(dú)立,與原問(wèn)題形式相同的子問(wèn)題;(2)解決:若子問(wèn)題規(guī)模較小而容易被解決則直接解,否則遞歸地解各個(gè)子問(wèn)題;(3)合并:將各個(gè)子問(wèn)題的解合并為原問(wèn)題的解。快速排序快速排序在這種方法中,n個(gè)元素被分成三段(組):左段
7、left,右段right和中段middle。中段僅包含一個(gè)元素。左段中各元素都小于等于中段元素,右段中各元素都大于等于中段元素。因此left和right中的元素可以獨(dú)立排序,并且不必對(duì)left和right的排序結(jié)果進(jìn)行合并。middle中的元素被稱為支點(diǎn)(pivot)。圖149中給出了快速排序的偽代碼。使用快速排序方法對(duì)a[0:n1]排序從a[0:n1]中選擇一個(gè)元素作為middle,該元素為支點(diǎn)把余下的元素分割為兩段left和righ
8、t,使得left中的元素都小于等于支點(diǎn),而right中的元素都大于等于支點(diǎn)遞歸地使用快速排序方法對(duì)left進(jìn)行排序遞歸地使用快速排序方法對(duì)right進(jìn)行排序所得結(jié)果為leftmiddleright考察元素序列[48371562]。假設(shè)選擇元素6作為支點(diǎn),則6位于middle;4,3,1,5,2位于left;8,7位于right。當(dāng)left排好序后,所得結(jié)果為1,2,3,4,5;當(dāng)right排好序后,所得結(jié)果為7,8。把right中的元素
9、放在支點(diǎn)元素之后,left中的元素放在支點(diǎn)元素之前,即可得到最終的結(jié)果[12345678]。把元素序列劃分為left、middle和right可以就地進(jìn)行(見程序146)。在程序146中,支點(diǎn)總是取位置1中的元素。也可以采用其他選擇方式來(lái)提高排序性能,本章稍后部分將給出這樣一種選擇。程序146快速排序templatevoidQuickSt(Taintn)對(duì)a[0:n1]進(jìn)行快速排序要求a[n]必需有最大關(guān)鍵值quickSt(a0n1)t
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)算法設(shè)計(jì)與分析期末試題4套含答案
- 計(jì)算機(jī)算法設(shè)計(jì)與分析第4版
- 《計(jì)算機(jī)算法設(shè)計(jì)與分析》習(xí)題及答案
- 計(jì)算機(jī)網(wǎng)絡(luò)試題含答案———期末
- 《計(jì)算機(jī)算法設(shè)計(jì)與分析》課程設(shè)計(jì)
- 計(jì)算機(jī)程序算法與算法描述
- 計(jì)算機(jī)算法設(shè)計(jì)與分析課后題答案(第三版)王曉東
- 計(jì)算機(jī)算法基礎(chǔ)
- 計(jì)算機(jī)算法.翻譯
- 算法分析期末試題卷集答案解析6套
- 計(jì)算機(jī)系統(tǒng)算法設(shè)計(jì)與分析報(bào)告課程設(shè)計(jì)
- 計(jì)算機(jī)(含答案)
- 計(jì)算機(jī)10套題
- 計(jì)算機(jī)輔助設(shè)計(jì)基礎(chǔ)試題含答案
- 計(jì)算機(jī)表演賽前4套答案
- 計(jì)算機(jī)基礎(chǔ)試題庫(kù)含答案
- 計(jì)算機(jī)(含答案)
- 計(jì)算機(jī)試題和答案分析
- 數(shù)據(jù)結(jié)構(gòu)與算法分析六套期末復(fù)習(xí)題含答案
- 潮流計(jì)算的計(jì)算機(jī)算法課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論