五大基礎演算法 分治法

2021-09-25 20:56:15 字數 845 閱讀 9867

1、定義

分治法的主題思想就是分而治之,也就是說把乙個大原問題變成兩個或者多個小問題解決,最後把小問題的解合併起來就是原問題的解。

分——將原問題分解為多個小問題;

治——將這些小問題逐個解決;

合——將小問題解合併,就得出原問題的解;

2.演算法實現

a、分治法的正規化

①分解問題:把原問題分解為若干個與原問題性質相類似的子問題

②求解子問題:不斷分解子問題直到可方便求出子問題的解為止

③合併子問題的解:合併子問題的解得到原問題的解

b、遞迴式

①divide:把具有n個元素的陣列分解為二個n/2大小的子陣列

②conquer:遞迴地分解子陣列,直到子陣列只包含乙個元素為止

③combine:二二合併已排好序的子陣列使之成為乙個新的排好序的子數 組,重複這樣二二合併的過程直到得到原問題的解

利用遞迴的思想,把問題一分為二,二分為四,直到只有乙個很小的問題為止。再把小問題的解合併,最後得到原問題的解。

遞迴式時間複雜度:

t (n

)=at

(bn)

+d(n

)+c(

n)

t(n)=at(\frac)+d(n)+c(n)

t(n)=a

t(nb

​)+d

(n)+

c(n)

3、分治法的適用條件

(1)可以把原問題分解成兩個或者多個小問題。

(2)分解成小問題後求解更加方便。

(3)原問題的解可以由所有小問題的解的合併。

最後說一下,分治法算不上演算法,分治只是乙個思想,很多演算法都會用到這種思想。

五大常用演算法 回溯法

於 回溯演算法實際上乙個類似列舉的搜尋嘗試過程,主要是在搜尋嘗試過程中尋找問題的解,當發現已不滿足求解條件時,就 回溯 返回,嘗試別的路徑。回溯法是一種選優搜尋法,按選優條件向前搜尋,以達到目標。但當探索到某一步時,發現原先選擇並不優或達不到目標,就退回一步重新選擇,這種走不通就退回再走的技術為回溯...

五大基礎演算法 列舉

1 定義 按照問題的要求,一一枚舉所有有可能的解,然後進行判斷,若符合要求則採納這個解,不符合就拋棄。2 演算法實現 第一部分 迴圈部分 利用迴圈把所有有可能的解,一一枚舉出來。需注意不能遺漏任何乙個解,也要避免重複。要考慮如何設計迴圈變數 初值 終值和遞增值。迴圈變數是否參與檢驗。為了提高解題效率...

演算法 五大演算法之分支限界法

分枝界限法是由三棲學者查理德 卡普 richard m.karp 在20世紀60年代發明,成功求解含有65個城市的旅行商問題,創當時的記錄。分枝界限法 把問題的可行解展開如樹的分枝,再經由各個分枝中尋找最佳解。1.基本概念 描述 採用廣度優先產生狀態空間樹的結點,並使用剪枝函式的方法稱為分枝限界法。...