《算法设计与分析》——迭代法求递归方程

迭代法

1. 直接迭代-Hanoi塔算法

设n个盘子的移动次数为 T ( n ) T(n) T(n):
T ( n ) = 2 T ( n − 1 ) + 1 T(n)=2T(n-1)+1 T(n)=2T(n1)+1
T ( 1 ) = 1 T(1)=1 T(1)=1

迭代:
《《算法设计与分析》——迭代法求递归方程》

2. 换元迭代-二分归并排序

  • 将对n的递推式换成对其他变元 k 的递推式
  • 对k直接迭代
  • 将解(关于k的函数)转换成关于 n 的函数

MergeSort(A,p,r)

  • 输入∶数组 A【p…r】
  • 输出∶按递增顺序排序的数组A
if p<r 
then q<L(p+r)/2]
	MergeSort (4,p,q) 
	MergeSort(A,q+1,r) 
	Merge(A,p,q,r)

最坏情况的时间复杂度:
W ( n ) = 2 W ( n / 2 ) + n − 1 W(n)=2W(n/2)+n-1 W(n)=2W(n/2)+n1
W ( 1 ) = 0 W(1)=0 W(1)=0

n = 2 k n=2^k n=2k带入式子中:
《《算法设计与分析》——迭代法求递归方程》

3. 归纳验证

验证二分归并排序:

  • n=1, W(1)=1long1-1+1=0
  • 假设对于n,解满足递归方程,则(有误)
    《《算法设计与分析》——迭代法求递归方程》
    原文作者:沙雕是沙雕是沙雕
    原文地址: https://blog.csdn.net/weixin_45488518/article/details/115056183
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞