演算法知識點整理 第2章 遞迴與分治策略

2021-07-26 23:42:36 字數 744 閱讀 4776

第二章 遞迴與分治策略

1.演算法總體思想

將乙個難以直接求解問題分解成足夠小的子問題,直到很容易求出其解為止。

2.遞迴函式的兩個要素:

邊界條件

遞迴函式

3.典型問題

兔子繁殖

斐波那契數列

ackerman函式(雙遞迴函式)

4.當演算法複雜度很高時(如:階乘),計算機執行能力對執行時間的提高效果越來越不明顯。

所以 提高演算法的效率顯得很重要

5.遞迴演算法的優缺點分析:

(可解決斐波那契數列進行分析)

優:結構清晰,歸納法可證明其正確性

缺:執行效率低,耗費時間,占用儲存空間

解決辦法:用遞推實現遞迴

6.分治法步驟:

分解遞迴求解

合併(不一定需要,如二分搜尋)

7.分治法計算效率分析

主方法8.大整數乘法

思路:將大整數分段,通過替換減少乘法的次數來提高演算法的效率。

9.strassen矩陣乘法

思路:將大矩陣分解成分塊矩陣,通過替換減少矩陣乘法的運算次數來提高演算法的效率。

10.棋盤覆蓋

思路:將2k × 2k棋盤分解成4個2k-1 × 2k-1棋盤,用乙個l型骨牌覆蓋住無特殊方格的三塊,遞迴分割就可以

11.合併排序

改進:直接兩兩排序,然後合併

12.快速排序

思路:大的放一邊,小的放一邊

13.演算法之間的比較

演算法知識點整理 第6章 分支限界法

第 6 章 分支限界法 1.分支限界 vs 回溯 回溯 求出滿足問題的所有解,深度優先 分支限界 求出滿足問題的乙個解 或者是找出問題中的乙個最優解 廣度優先 都要先定 空間結構 兩者對當前擴充套件節點所採取的擴充套件方式不同。2.分支限界法常見方式 佇列式分支限界法 fifo 優先佇列式分支限界法...

演算法知識點整理 第1章 演算法複雜性

第一章 演算法複雜性 1.演算法 vs 程式 輸入 輸出 確定性 演算法具有 有限性 在有限時間內執行完畢 2.演算法複雜性c c f n,i,a n 問題規模 i 演算法的輸入 a 演算法本身 時間複雜度 t t n,i 空間複雜度 s s n,i 3.演算法複雜度的三種評判標準 a.最好情況 很...

C primer第4版第1章知識點整理

talk is cheap,show me the code.std endl是乙個操縱符 manupulator 有兩個作用,乙個是輸出換行效果,另乙個是重新整理與裝置關聯的緩衝區 buffer 重新整理與裝置關聯的緩衝區能夠讓流中的內容立即輸出顯示在裝置中。std cout的兩個輸出操縱符 之間...