五大常用算法詳解

五大常用算法

分治法

????基本思想

????將一個問題,分解為多個子問題,遞歸的去解決子問題,最終合并為問題的解

????適用情況

? ? 1. 問題分解為小問題后容易解決

? ? 2. 問題可以分解為小問題,即最優(yōu)子結構

? ? 3. 分解后的小問題解可以合并為原問題的解

? ? 4. 小問題之間互相獨立

????實例:? ? 二分查找,快速排序,合并排序,大整數(shù)乘法,循環(huán)賽日程表

動態(tài)劃分算法

????基本思想

????????將問題分解為多個子問題(階段),按順序求解,前一個問題的解為后一個問題提供信息

????適用情況

? ? ? ? 1. 最優(yōu)化原理:問題的最優(yōu)解所包含的子問題的解也是最優(yōu)的,即最優(yōu)子結構

? ? ? ? 2. 無后效性:某個狀態(tài)一旦確定,就不受以后決策的影響

? ? ? ? 3. 有重疊子問題

????????說明:? 遞推關系是從次小的問題開始到較大問題的轉化,往往可以用遞歸來實現(xiàn),可以利用? ? ? ?之前產(chǎn)生的子問題的解來減少重復的計算

回溯法

????基本思想

????????選優(yōu)搜索法,走不通就退回重選,按照深度優(yōu)先搜索的策略,從根節(jié)點出發(fā),深度搜索解空間

????步驟

? ? ? ? 1. 確定解空間

? ? ? ? 2. 確定節(jié)點的擴展搜索規(guī)則

? ? ? ? 3. 深度優(yōu)先方式搜索解空間,用剪枝法避免無效搜索

分支界限法

????基本思想

? ? ? ?與回溯法類似,也是在解空間里搜索解得算法,不同點是,回溯法尋找所有解,分支界限法搜索一個解或者最優(yōu)解

????????分支:廣度優(yōu)先策略或者最小耗費(最大效益)優(yōu)先

????????分支搜索方式:FIFO、LIFO、優(yōu)先隊列式、分支界限搜索算法

貪心算法

????基本思想

????????不從總體最優(yōu)考慮,僅考慮局部最優(yōu)解,問題必須具備后無效性

????步驟

? ? ? ? 1. 將問題分解為多個子問題

? ? ? ? 2. 得到問題的局部最優(yōu)解

? ? ? ? 3. 合并子問題的局部最優(yōu)解

? ? ? ?適用情況

????????局部最優(yōu)策略能導致全局最優(yōu)解

????????子問題后無效性

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 分治算法 一、基本概念 在計算機科學中,分治法是一種很重要的算法。字面上的解釋是“分而治之”,就是把一個復雜的問題...
    木葉秋聲閱讀 5,385評論 0 3
  • 五大常用算法之一:分治算法 基本概念: 把一個復雜的問題分成兩個或更多的相同的或相似的子問題。再把子問題分成更小的...
    親愛的破小孩閱讀 5,101評論 0 1
  • 2018年3月24日一部更文目錄(鳴鷗) 1.七徽,詩經(jīng)38《 桃夭,桃花開了,我想和你去看看》 作者自薦 春日里...
    鳴鷗閱讀 483評論 4 7
  • 不管愛情還是友情,終極的目的不是歸宿,而是理解默契,是要找一個可以邊走邊談的人,希望我們能遇到一個心動的人,而不是...
    誰動了我的魔芋豆腐閱讀 285評論 0 2
  • 1.開胃菜 迅速勾起胃口 2.主 菜 實在的干貨 3.甜 點 幸福的小確旳
    軟妹子的日常閱讀 103評論 0 0

友情鏈接更多精彩內(nèi)容