分治算法 :分治算法的基本思想是將一個規模為N的問題分解為K個規模較小的子問題,這些子問題相互獨立且與原問題性質相同。求出子問題的解,就可得到原問題的解決。
動態規劃算法: 通常用于求解具有某種最優性質的問題。在這類問題中,可能會有許多可行解。每一個解都對應于一個值,我們希望找到具有最優值的解。動態規劃算法與分治法類似,其基本思想也是將待求解問題分解成若干個子問題,先求解子問題,然后從這些子問題的解得到原問題的解。和分治算法最大的差別:適用于動態規劃算法求解的問題經過分解后得到的子問題往往不是相互獨立的,而是下一個子階段的求解是建立在上一個子階段的解的基礎上的。
貪心算法:保證每次操作都是局部最優的,并且最后得到的結果是全局最優的
二分法: 比如重要的二分法,比如二分查找;二分查找也稱折半查找(Binary Search),它是一種效率較高的查找方法。但是,折半查找要求線性表必須采用順序存儲結構,而且表中元素按關鍵字有序排列。
搜索算法: 主要包含BFS,DFS
Backtracking(回溯): 屬于 DFS, 回溯算法實際上一個類似枚舉的搜索嘗試過程,主要是在搜索嘗試過程中尋找問題的解,當發現已不滿足求解條件時,就“回溯”返回,嘗試別的路徑。回溯法是一種選優搜索法,按選優條件向前搜索,以達到目標。但當探索到某一步時,發現原先選擇并不優或達不到目標,就退回一步重新選擇,這種走不通就退回再走的技術為回溯法