算法分析与设计---迭代法求解递推方程

1.迭代法

  • 步骤

    • 不断将递推方程的右部替代左部
    • 直到出现初值
    • 将初值带入,进行化简
    • 用数学归纳法进行验证
  • 备注:迭代法也可以进行换元后进行如例三
  • 例子

    • 汉诺塔问题
      • T(n)=2T(n-1)+1
      • T(1)=1

      • T(n) = 2 T(n-1) + 1

        = 2[2T(n-2) + 1] + 1

        = 2^2 T(n-2) + 2 + 1

        ......

        = 2^(n-1)T(1) + 2^(n-2)+2^(n-3)+...+2+1

        =2^(n-1) + 2^(n-1)-1= 2^n-1

        T(1)=1, 2^(n-2)+2^(n-3)+...+2+1等比数列

      • 数学归纳法验证:
        • 第一步:n=1:T(0)=0,T(1)=1
        • 第二步:假设n时,T(n)=2^n-1成立
        • 第三步:带入n+1
        • T(n+1)=2T(n)+1

          =(2^n-1)*2+1

          =2^(n+1)-2+1

          =2^(n+1)-1 

    • 插入排序
      • W(n)=W(n-1)+n-1
      • W(1)=0
      • W(n)=W(n-1) + n-1

        =[W(n-2) + n-2] + n-1

        = W(n-2) + n-2 + n-1

        ......
        = W(1) + 1 +2 + ...+(n-2) + (n-1)

        =1 +2 + ... +(n-2) +(n-1)

        = m(n-1)/2

        1 +2 + ... +(n-2) +(n-1)等差数列化简即可

    • 二分排序
      • W(n)=2W(n/2)+n-1
      • W(1)=0
      • 换元为:
        • W(2^k) = 2W(2^(k-1)) + 2^k-1

        • W(0) = 0

        • W(n)= 2W(2^(k-1))+ 2^k -1

          = 2[2W (2^(k-2))+ 2^(k-1) -1]+ 2^k -1

          = 2^2W(2^(k-2))+2^k -2+2^k -1

          = 2^2[2W(2^(k-3))+ 2^(k-2) -1]+ 2^k -2+2^k-1

          ......
          = 2^kW(1)+ k2^k -(2^(k-1) + 2^(k-2) + ...+ 2+1)

          = k2^k -2^k +1
          =nlogn-n+1

          (2^(k-1) + 2^(k-2) + ...+ 2+1)等比数列

          nlogn-n+1换元换回来

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值