演算法設計與分析複習提綱
一 基本概念
演算法的五個重要特性。
演算法有幾種基本控制結構?
演算法的最好、最壞情況下和期望時間複雜度的定義。用比較樹模型描述演算法,並說明最壞情況下的時間複雜性。
符號o的定義。常用的上界函式有哪些?
o的運算規則。
運用o的運算規則分析氣泡排序演算法的時間複雜性的漸高階。
用演算法時間複雜性曲線說明給演算法的時間複雜度降階的好處。例如順序查詢和折半查詢。
分析將陣列分成1/3和2/3大小不等的兩部分的二分檢索演算法和折半的二分檢索演算法的時間複雜度差異。(主方法等考點)
分治法的基本思想。
歸併排序和快速排序演算法在最壞情況下的時間複雜性有什麼差異?快速排序演算法的期望時間複雜性怎樣?
順序選擇(找第k小的的元素)演算法的基本控制流程。如何解決子問題劃分不平衡對時間複雜度的影響。
貪心法的基本策略。最優子結構的概念。
揹包問題的目標函式是什麼,貪心演算法的最優量度是什麼,貪心演算法是否獲得最優解? 用貪心演算法解0/1揹包問題是否可獲得最優解?
prim演算法和dijkstra演算法的貪心策略。了解它們在演算法上的相似和不同,它們是怎麼避免陷入區域性最優的?
帶有限期的作業排序貪心演算法的基本思想和流程。
解釋bellman方程。多段圖、矩陣連乘、0/1揹包問題、流水線作業排程動態規劃遞迴方程。
用動態規劃法求解的基本原則,解題的幾大基本步驟。能舉例說明。
回溯法的基本思想和一般控制流程。
解空間的含義,顯約束和隱約束。說明回溯法適合求解的問題。能舉例,要求用形式化描述問題。
掌握n皇后、哈密頓環、m-著色、子集和數問題的回溯演算法。
回溯法的效率分析方法。影響搜尋效率的因素。子集和數問題的回溯法是怎樣提高效率的?是否避免了最壞情況下的所有無效搜尋?
分枝限界方法與回溯法的關係。
lc搜尋的思路。在所有情況下lc搜尋都能保證最優嗎?
有了選擇策略,為什麼還提要加強限界?舉例說明上界函式的作用。
二、 演算法時間複雜性分析
1. 怎樣選擇時間複雜度的量?舉例說明。
2. 幾種控制流程的時間複雜度的計量原則。
3. 運用漸高階o的運算規則分析演算法基本流程的漸進複雜性。
4. 遞迴過程的時間複雜性分析。如maxmin、歸併排序、hanoi塔演算法的時間複雜度。
三、演算法理解和設計
1.掌握學過的演算法。
2.能夠運用它們解題,即按照演算法的步驟寫出所給例項的解題步驟。例如用深度優先搜尋判斷圖是否連通,用dijkstra演算法找從i到j的最短路徑。
3.能夠按照已學的框架,設計演算法。如果是貪心演算法,要討論演算法的有效性。
演算法分析複習提綱
演算法分析複習提綱 解決問題的方法 演算法的特性,有限 演算法描述,描述出思想 出題是出演算法 用語言描述 解題思想 演算法設計的基本步驟 演算法分析 重點 時間 空間 複雜度 看第二節 第一節不看 遞迴模型是什麼 44頁 能夠用遞迴解決的應該滿足一下三個條件 回溯法用遞迴和不用遞迴有什麼區別 求遞...
演算法複習提綱
tips 1.遇到要求連續取一段數的問題可以考慮用佇列,滿足條件則壓入佇列,不滿足則將隊首移除。蝸牛旅行問題 2.對於大量重複的計算可以考慮進行預處理,比如找質數,可以先將小於n的質數全部找出來,不然每次碰到乙個數n,就迴圈去除比n小的數,看是否有餘數來確定這個數是不是質數太麻煩,且消耗大。找質數問...
設計模式複習提綱
深拷貝 備註 物件適配 adapter 聚合adaptee類,實現target介面 中,重寫target的方法 在裡面呼叫並修改屬性adaptee的方法 預設適配 adapter 實現target介面,所有方法空實現,供使用的時候復用重寫 備註 行為上 封裝了command物件,實現了invoker...