算法設計與分析|5個算法

1)分治法

對于一個規(guī)模為n的問題,若該問題可以容易地解決(比如說規(guī)模n較?。?,則直接解決;否則將其分解為k個規(guī)模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞歸地解這些子問題,然后將各子問題的解合并得到原問題的解。

2)回溯法(深度優(yōu)先)

回溯法是一種選優(yōu)搜索法,按選優(yōu)條件向前搜索,以達到目標。但當搜索到某一步時,發(fā)現(xiàn)原先選擇并不優(yōu)或達不到目標,就退回一步重新選擇。這種走不通就退回再走的技術就是回溯法。

3)貪心法

總是做出在當前來說是最好的選擇,而并不從整體上加以考慮,它所做的每步選擇只是當前步驟的局部最優(yōu)選擇,但從整體來說不一定是最優(yōu)的選擇。由于它不必為了尋找最優(yōu)解而窮盡所有可能解,因此其耗費時間少,一般可以快速得到滿意的解,但得不到最優(yōu)解。

4)動態(tài)規(guī)劃法

在求解問題中,對于每一步?jīng)Q策,列出各種可能的局部解,再依據(jù)某種判定條件,舍棄哪些肯定不能得到最優(yōu)解的局部解,在每一步都經(jīng)過篩選,以每一步都是最優(yōu)解來保證全局是最優(yōu)解。

5)分支限界法(廣度優(yōu)先)



分治算法求出的子問題是互相獨立的。

動態(tài)規(guī)劃算法具有最優(yōu)子結(jié)構(gòu)性質(zhì)和重疊子問題性質(zhì)。

貪心算法不追求最優(yōu)解,只求可行解,因此不具備最優(yōu)子結(jié)構(gòu)的特性。

回溯算法把問題的解空間轉(zhuǎn)化成圖或者樹結(jié)構(gòu),然后使用深度優(yōu)先搜索策略進行遍歷,遍歷的過程中記錄和尋找所有可行解或者最優(yōu)解。

分支限界算法類似于回溯算法,它以廣度優(yōu)先方式搜索解空間樹。

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

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

  • 五大常用算法之一:分治算法 基本概念: 把一個復雜的問題分成兩個或更多的相同的或相似的子問題。再把子問題分成更小的...
    親愛的破小孩閱讀 5,128評論 0 1
  • 1.算法的特征:輸入(零個或多個輸入量)、輸出(至少產(chǎn)生一個輸出量)、確定性(算法每一條指令都有確切的定義,沒有二...
    Ping開源閱讀 1,046評論 0 2
  • 前端與算法——遞推與遞歸 總有人說,前端不就是渲染渲染頁面嗎?為什么要學算法?學習算法不是大廠面試用的嗎?這里我想...
    failte閱讀 753評論 0 0
  • 1、遞歸與分治 1.1 遞歸算法:直接或者間接不斷反復調(diào)用自身來達到解決問題的方法。這就要求原始問題可以分解成相同...
    JaJIng閱讀 597評論 0 0
  • 算法考試大綱 教材: 1、計算復雜度 一、定義 在進行算法分析時,語句總的執(zhí)行次數(shù)T(n)是關于問題規(guī)模n的函數(shù),...
    綠楊煙外曉寒輕_閱讀 931評論 0 1

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