[算法导论]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

相关文章
相关标签/搜索