算法學習與應用從入門到精通


 

算法5個特征:

1.有窮性:保證執行優先步驟之后結束

2.確切性:每一步驟都有確切的定義

3.輸入:每個算法有零個或多個輸入

4.輸出:每個算法有一個或多個輸出

5.可行性:原則上算法能夠精確地運行,進行有限次運算后即可完成一種運算

計算機算法可分為兩大類:

1.數值運算算法:求解數值

2.非數值運算算法:事務管理領域

算法流程圖:1.順序結構 2.選擇結構(也成分支結構) 3.循環結構(當型循環、直到型循環)

算法思想8種:枚舉、遞推、遞歸、分治、貪心、試探法、動態迭代、模擬

1.枚舉算法

枚舉算法思想:將問題的所有可能的答案一一列舉,然后根據條件判斷此答案是否合適。保留合適的,丟棄不合適的。

解題思路:(1)確定枚舉對象、枚舉范圍和判定條件(2逐一列舉可能的解,驗證每個解是否是問題的解

枚舉算法步驟:(1題解的可能范圍,不能遺漏任何一個真正解,也要避免有重復(2判斷是否是真正解的方法(3使可能解的范圍降至最小,以便提高解決問題的效率

實例一:百錢買百雞

實例二:填寫運算符

 

 

 

 

 

2.遞推算法思想

(1 順推法 :從已知條件出發,逐步推算出要解決問題的方法。例如斐波那契數列

(2 逆推法 :從已知的結果出發,用迭代表達式逐步推算出問題開始的條件,即順推法的逆過程。

實例一【斐波那契數列】:兔子數列。兔子在出生兩個月后,就有繁殖能力,一對兔子每個月能生出一對小兔子來。如果所有兔子都不死,一年以后而已繁殖多少對兔子?

實例二【逆推算法】:銀行存款。母親為兒子小sun 4 年的大學生活准備一一筆存款,方式是整存零取,規定小Sun每月月底取下一個月的生活費。現在假設銀行的年利息為1.71%,請編寫程序,計算母親最少需要存入多少錢?

 

3.遞歸算法思想

遞歸算法特點:(1 遞歸過程一般通過函數或子過程來實現 (2 遞歸算法在函數或子過程的內部,直接或者間接地調用自己的算法 (3 遞歸算法實際上是把問題轉化為規模縮小的同類問題的子問題,然后再遞歸調用函數或過程來表示問題的解。

注意:(1 遞歸是在過程或函數中調用自身的過程。(2 在使用遞歸策略時,必須有一個明確的遞歸結束條件,這稱為遞歸出口 (3 遞歸算法通常顯得很簡潔,但是運行效率較低,所以一般不提倡用遞歸算法設計程序 (4 在遞歸調用過程中,系統用棧來存儲每一層的返回點和局部量。如果遞歸次數過多,則容易造成棧溢出,所以一般不提倡用遞歸算法設計程序

 實例一:漢諾塔。寺院里有3根柱子,第一根有64個盤子,從上往下盤子越來越大。方丈要求小和尚A把這64個盤子全部移動到第3根柱子上。在移動的時候,始終只能小盤子壓着大盤子,而且每次只能移動一個。[http://demo.sucaihuo.com/2215/]

事例二:階乘。自然數由1~n的n個數連乘積叫做n的階乘,記作n!

4.分治算法思想

 分治算法解題步驟:(1 分解:將要解決的問題划分成若干個規模較小的同類問題 (2求解:當子問題划分得足夠小時,用較簡單的方法解決 (3合並:按原問題的要求,將子問題的解逐層合並構成原問題的解

實例一:大數相乘。指計算兩個大數的積。假如計算123*456的結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM