[算法導論]CLRS之主定理

主定理

假設分治法中,遞推公式以下segmentfault

遞推公式

Wiki上的主定理定義spa

CLRS上的直觀解釋

  1. 前一部分比較大,佔主要地位
  2. 兩部分差很少, 乘以 lg(n)
  3. 後一部分比較大,佔主要地位

例子

wiki上的三個例子
應用排序

另: findKth a=1 b=2 f(n)=O(n) 根據第3條, 複雜度是 O(n)遞歸

這三個例子也都比較方便使用遞歸樹進行解釋,詳細以下:
1. 折半搜索
一共lg(n) 層, 每層爲 O(1)。 複雜度是 lg(n).
2. 二叉樹遍歷
一共lg(n) 層, 每層的操做數不同, 第一層是1,第二層是2,第n層是2^n, 利用等比數列的知識, 能夠獲得複雜度是 O(n)
3. 歸併排序
一共lg(n) 層, 每層爲 O(n)。 複雜度是 O(n*lg(n)).ip

特例

出如今狀況三種,先無論get

相關文章
相關標籤/搜索