算法导论 4.2-1

来源:互联网 发布:同志漫画软件 编辑:程序博客网 时间:2024/05/01 03:58

1 题目

利用递归树来猜测递归式T(n)=3T(⌊ n/2 ⌋)+n的一个好的渐近上界,并利用 代换法来证明你的猜测。

2 分析与解答

证明:忽略上下界,假设当n=1时,T(1)=1。

建立递归式T(n)=3T(n/2)+n的递归树:


根据递归树可以得到如下结论:

  1. 递归树的深度为lgn;
  2. 第i层的结点数为3i;
  3. 除最后一层,第i层的代价(3/2)in;
  4. 最后一层的代价为(3/2)logn

根据以上结论可得,整棵递归树的总体代价为:


根据等比数列求和公式和换底公式,得:

用替换法证明T(n)=3T(⌊ n/2 ⌋)+n的时间上界为nlg 3

假设T(n)=O(nlg 3),那么就存在c和n0,当n >= n0时,有T(n) <= cnlg 3

所以有T(n) <= 3c(n/2)lg 3 + n = 3cnlg 3/3 + n = cnlg 3 + n;

因为,lg 3 > 1,所以当n >= 1时,nlg 3 >= n;

所以,当n >= n0时,有T(n) <= 2cnlg 3,即T(n) = O(nlg 3)