

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1(1)用計算機求解問題的步驟:用計算機求解問題的步驟:1、問題分析2、數學模型建立3、算法設計與選擇4、算法指標5、算法分析6、算法實現7、程序調試8、結果整理文檔編制(2)算法定義:算法定義:算法是指在解決問題時,按照某種機械步驟一定可以得到問題結果的處理過程算法是指在解決問題時,按照某種機械步驟一定可以得到問題結果的處理過程(3)算法的三要素算法的三要素1、操作2、控制結構3、數據結構算法具有以下算法具有以下5個屬性個屬性:有窮性
2、:一個算法必須總是在執(zhí)行有窮步之后結束,且每一步都在有窮時間內完成。確定性:算法中每一條指令必須有確切的含義。不存在二義性。只有一個入口和一個出口可行性:一個算法是可行的就是算法描述的操作是可以通過已經實現的基本運算執(zhí)行有限次來實現的。輸入:一個算法有零個或多個輸入,這些輸入取自于某個特定對象的集合。輸出:一個算法有一個或多個輸出,這些輸出同輸入有著某些特定關系的量。算法設計的質量指標:算法設計的質量指標:正確性:算法應滿足具體問題的需
3、求;可讀性:算法應該好讀,以有利于讀者對程序的理解;健壯性:算法應具有容錯處理,當輸入為非法數據時,算法應對其作出反應,而不是產生莫名其妙的輸出結果。效率與存儲量需求:效率指的是算法執(zhí)行的時間;存儲量需求指算法執(zhí)行過程中所需要的最大存儲空間。一般這兩者與問題的規(guī)模有關。經常采用的算法主要有迭代法、分而治之法、貪婪法、動態(tài)規(guī)劃法、回溯法、分支限界法迭代法迭代法也稱也稱“輾轉法輾轉法”,是一種不斷用變量的舊值遞推出新值的解決問題的方,是一種
4、不斷用變量的舊值遞推出新值的解決問題的方法。法。利用迭代算法解決問題,需要做好以下三個方面的工作:一、確定迭代模型。在可以用迭代算法解決的問題中,至少存在一個直接或間接地不斷由舊值遞推出新值的變量,這個變量就是迭代變量。二、建立迭代關系式。所謂迭代關系式,指如何從變量的前一個值推出其下一個值的公式(或關系)。迭代關系式的建立是解決迭代問題的關鍵,通??梢允褂眠f推或倒推的方法來完成。31、分治法的基本思想任何一個可以用計算機求解的問題所需
5、的計算時間都與其規(guī)模N有關。問題的規(guī)模越小,越容易直接求解,解題所需的計算時間也越少。例如,對于n個元素的排序問題,當n=1時,不需任何計算;n=2時,只要作一次比較即可排好序;n=3時只要作3次比較即可,…。而當n較大時,問題就不那么容易處理了。要想直接解決一個規(guī)模較大的問題,有時是相當困難的。分治法的設計思想是,將一個難以直接解決的大問題,分割成一些規(guī)模較小的相同問題,以便各個擊破,分而治之。分治法所能解決的問題一般具有以下幾個特征
6、:(1)該問題的規(guī)??s小到一定的程度就可以容易地解決;(2)該問題可以分解為若干個規(guī)模較小的相同問題,即該問題具有最優(yōu)子結構性質;(3)利用該問題分解出的子問題的解可以合并為該問題的解;(4)該問題所分解出的各個子問題是相互獨立的,即子問題之間不包含公共的子子問題。3、分治法的基本步驟分治法在每一層遞歸上都有三個步驟:(1)分解:將原問題分解為若干個規(guī)模較小,相互獨立,與原問題形式相同的子問題;(2)解決:若子問題規(guī)模較小而容易被解決則
7、直接解,否則遞歸地解各個子問題;(3)合并:將各個子問題的解合并為原問題的解??焖倥判蚩焖倥判蛟谶@種方法中,n個元素被分成三段(組):左段left,右段right和中段middle。中段僅包含一個元素。左段中各元素都小于等于中段元素,右段中各元素都大于等于中段元素。因此left和right中的元素可以獨立排序,并且不必對left和right的排序結果進行合并。middle中的元素被稱為支點(pivot)。圖149中給出了快速排序的偽代碼
8、。使用快速排序方法對a[0:n1]排序從a[0:n1]中選擇一個元素作為middle,該元素為支點把余下的元素分割為兩段left和right,使得left中的元素都小于等于支點,而right中的元素都大于等于支點遞歸地使用快速排序方法對left進行排序遞歸地使用快速排序方法對right進行排序所得結果為leftmiddleright考察元素序列[48371562]。假設選擇元素6作為支點,則6位于middle;4,3,1,5,2位于le
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論