算法簡記

數據結構和算法算法

算法:解決問題的方法和步驟數據結構

評價算法的好壞:漸近時間複雜度和漸近空間複雜度。數據結構和算法

漸近時間複雜度的大O標記:  排序

    - 常量時間複雜度 - 布隆過濾器 / 哈希存儲  搜索

    - 對數時間複雜度 - 折半查找(二分查找)  方法

    - 線性時間複雜度 - 順序查找 / 桶排序  數據

    - 對數線性時間複雜度 - 高級排序算法(歸併排序、快速排序)  動態規劃

    - 平方時間複雜度 - 簡單排序算法(選擇排序、插入排序、冒泡排序)  時間

    - 立方時間複雜度 - Floyd算法 / 矩陣乘法運算  

    - 幾何級數時間複雜度

    - 漢諾塔  

    - 階乘時間複雜度

    - 旅行經銷商問題

    - NP

 

 

 

經常使用算法:

    窮舉法 - 又稱爲暴力破解法,對全部的可能性進行驗證,直到找到正確答案。

    貪婪法 - 在對問題求解時,老是作出在當前看來 最好的選擇,不追求最優解,快速找到滿意解。

    分治法 - 把一個複雜的問題分紅兩個或更多的相同或類似的子問題,再把子問題分紅更小的子問題,直到能夠直接求解的程度,最後將子問題的解進行合併獲得原問題的解。

     回溯法 - 回溯法又稱爲試探法,按選優條件向前搜索,當搜索到某一步發現原先選擇並不優或達不到目標時,就退回一步從新選擇。

    動態規劃 - 基本思想也是將待求解問題分解成若干個子問題,先求解並保存這些子問題的解,避免產生大量的重複運算。

相關文章
相關標籤/搜索