1. 程式人生 > >《算法設計與分析》概念題總結

《算法設計與分析》概念題總結

分析 現在 規劃 劃算 算法概述 遞歸與分治策略 nbsp 清晰 分治法

第一章 算法概述

算法

  概念:算法是指解決問題的一種方法或者一個過程。

  性質:

    1. 輸入:有零個或多個輸入

    2. 輸出:有至少一個輸出

    3. 確定性:組成算法的每條指令是清晰的,無歧義的

    4. 有限性:算法中的每條指令的執行次數是有限的,執行每條指令的時間也是有限的。

程序

  程序是算法用來某種程序設計語言的具體實現。  

算法與程序的不同

  算法是用來給人讀的,機器不能直接運行。

  程序可以不滿足算法的h第四條性質——有限性。

算法的復雜性

  算法復雜性的高低體現在運行該算法所需要的計算機資源的多少上,所需資源越多,該算法的復雜性越高;反之越低。

第二章 遞歸與分治策略

遞歸算法

  直接或間接調用自身的算法稱為遞歸算法

遞歸函數

  用函數自身給出定義的函數

分治法  

  將一個規模為 n 的問題分解為 k 個規模較小的子問題,這些子問題互相獨立且與原問題相同,然後遞歸求解子問題,最後將子問題的解合並得到原問題的解。

分治法所能解決的問題的特征

  1. 問題規模縮小到一定程度時可以很容易解決

  2. 該問題可分解為若幹個規模較小的子問題,即具有“最優子結構”性質

  3. 利用子問題的解可合並成原問題的解

  4. 子問題相互獨立,即子問題之間不包含公共的子問題

第三章 動態規劃

備忘錄法

  備忘錄法是動態規劃算法的變形。備忘錄法的遞歸方式是自頂向下的,求解過程中記錄每個子問題的解,這樣的好處是在求解共同問題避免了重復求解。

動態規劃

  將原問題分解成若幹個子問題,先求解子問題,並記錄解,然後從這些子問題的解得到原問題的解。  

動態規劃與分治法的相同點與不同點

  相同點:

  不同點

第四章 貪心算法

第五章 回溯法

第六章 分支限界法

《算法設計與分析》概念題總結