跟我一起學演算法 分治法

2022-08-09 10:15:10 字數 755 閱讀 2271

目錄

應用2:快速排序

參考分治法(divide and conquer)

對於具備以下特點的問題:

分治法所能解決的問題一般具有以下幾個特徵:

該問題的規模縮小到一定的程度就可以容易地解決

該問題可以分解為若干個規模較小的相同問題,即該問題具有最優子結構性質

利用該問題分解出的子問題的解可以合併為該問題的解

問題所分解出的各個子問題是相互獨立的,即子問題之間不包含公共的子問題

上述的第一條特徵絕大多數問題都可以滿足,第二條是分治法應用的前提,反映了遞迴思想的應用,

第三條特徵是關鍵,如果具備了第一條和第二條特徵,而不具備第三條特徵,則可以考慮貪心演算法

或動態規劃演算法;第四條特徵涉及到分治法的效率,如果各個子問題不是獨立的,則分治法要重複

地解公共子問題,動態規劃演算法解決效率更高。動態規劃法=分治演算法思想+解決子問題冗餘情況

在當前的無序區a[p..r]中任取乙個元素x作為比較的基準,並用該基準將當前無序區分為左右二個

較小的無序區a[p..q-1]和a[q+1..r],使得左邊的無序區a[p..q-1]中的元素均小於基準元素x,

右邊的無序區a[q+1..r]中的元素均大於x。

quicksort(a,p,r)

if p《演算法導論》

跟我一起學 演算法導論 分治演算法

演算法導論,一章二小節 分治演算法 defmerge a,p,q,r print s s s s p,q 1 q 1,r 1 if p q l a p 10 10 else l a p q 1 10 10 if q 1 r r a r 10 10 else r a q 1 r 1 10 10 i j...

跟我一起學攝影

咦 好巧!我也是攝影愛好者。咱們一起學習吧。或許你也有這樣的體驗,並茂的文章更能讓人快速進入學習狀態,更何況是攝影,必須有圖。下面是我彙總的資料,必須深入淺出,拒絕一切晦澀難懂。學習課本 1.佳能官網 能系統學習攝影知識,從入門 初級 中級 高階 高階。每個頁面講解乙個知識點,結合實際的拍攝效果,深...

跟我一起學 演算法導論 堆

encoding utf 8 遞迴 單條路 自下往上排序 defheap adjust data,s,m if2 s m return 宣告 預設父節點位置 temp s 1 左 子節點值 大於 父節點值 預設父節點位置 為 左子節點位置 ifdata 2 s 1 data temp temp 2 ...