常用算法分析

最近在刷leetcode,真心感覺很多題目,暴力求解很難實現,需要使用相應的算法進行解答。

以下都是在網絡蒐集的一下算法總結,希望能幫助到需要的朋友。

文章會不斷更新。。。

1) 貪婪算法
貪心算法(又稱貪婪算法)是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的局部最優解。
具體算法請參考:https://blog.csdn.net/qq_32400847/article/details/51336300

leetcode:待更新。。。



2) 動態規劃算法
動態規劃算法的基本思想與分治法類似,也是將待求解的問題分解爲若干個子問題(階段),按順序求解子階段,前一子問題的解,爲後一子問題的求解提供了有用的信息。在求解任一子問題時,列出各種可能的局部解,通過決策保留那些有可能達到最優的局部解,丟棄其他局部解。依次解決各子問題,最後一個子問題就是初始問題的解。
具體算法請參考-1:https://blog.csdn.net/qq_32400847/article/details/51148917
具體算法請參考-2:https://blog.csdn.net/tongxinzhazha/article/details/77407648

leetcode:待更新。。。

3)分治算法
分治算法的基本思想是將一個規模爲N的問題分解爲K個規模較小的子問題,這些子問題相互獨立且與原問題性質相同。求出子問題的解,就可得到原問題的解。即一種分目標完成程序算法,簡單問題可用二分法完成。
具體算法請參考:https://blog.csdn.net/qfikh/article/details/51946134

leetcode:待更新。。。

4) 回溯算法
回溯算法實際上一個類似枚舉的搜索嘗試過程,主要是在搜索嘗試過程中尋找問題的解,當發現已不滿足求解條件時,就“回溯”返回,嘗試別的路徑。回溯法是一種選優搜索法,按選優條件向前搜索,以達到目標。但當探索到某一步時,發現原先選擇並不優或達不到目標,就退回一步重新選擇,這種走不通就退回再走的技術爲回溯法,而滿足回溯條件的某個狀態的點稱爲“回溯點”。許多複雜的,規模較大的問題都可以使用回溯法,有“通用解題方法”的美稱。
具體算法請參考:https://blog.csdn.net/qq_32400847/article/details/51474105

leetcode:待更新。。。

5) 分支限界算法
分枝定界法是一個用途十分廣泛的算法,運用這種算法的技巧性很強,不同類型的問題解法也各不相同。分支定界法的基本思想是對有約束條件的最優化問題的所有可行解(數目有限)空間進行搜索。
具體算法請參考:https://blog.csdn.net/qq_32400847/article/details/51813606

leetcode:待更新。。。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章