【组合数学】递推方程 ( 递推方程示例 2 汉诺塔 | 递推方程示例 3 插入排序 )

举报
韩曙亮 发表于 2022/01/10 23:33:52 2022/01/10
【摘要】 文章目录 一、递推方程示例 2 汉诺塔二、递推方程示例 3 插入排序 一、递推方程示例 2 汉诺塔 Hanoi 问题 : 递推方程为 : ...





一、递推方程示例 2 汉诺塔



Hanoi 问题 :

  • 递推方程为 : T ( n ) = 2 T ( n − 1 ) + 1 T(n) =2 T(n-1) + 1 T(n)=2T(n1)+1
  • 初值 : T ( 1 ) = 1 T(1) = 1 T(1)=1
  • 解 : T ( n ) = 2 n − 1 T(n) = 2^n - 1 T(n)=2n1

该递推方程表示 , 将 n n n 个盘子的移动次数 T ( n ) T(n) T(n) , 与 n − 1 n-1 n1 个盘子的移动次数 T ( n − 1 ) T(n-1) T(n1) 之间的关系 ;


解法参考 : 【组合数学】递推方程 ( 特特解示例 ) 一、特解示例 1 ( 汉诺塔 )





二、递推方程示例 3 插入排序



W ( n ) W(n) W(n) 表示在最坏的情况下插入排序的次数 ;

前面的 n − 1 n-1 n1 个数已经排好了 , 其在最坏的情况下插入排序次数是 W ( n − 1 ) W(n-1) W(n1) 次 ,

n n n 个数字要插入到这 n − 1 n-1 n1 个数字中 , 最坏的情况是 要插入的数字要与所有的已排序好的 n − 1 n-1 n1 个数字进行比较 , 对比次数是 n − 1 n-1 n1 次 ,

因此递推方程可以写成 : W ( n ) = W ( n − 1 ) + n − 1 W(n) = W(n-1) + n-1 W(n)=W(n1)+n1

递推方程初值 : W ( 1 ) = 0 W(1) = 0 W(1)=0 , 如果只有一个数字 , 不用进行排序 , 对比次数是 0 0 0 ;

最终解为 : W ( n ) = O ( n 2 ) W(n) = O(n^2) W(n)=O(n2) , 精确值为 W ( n ) = n ( n − 1 ) 2 W(n) = \cfrac{n(n-1)}{2} W(n)=2n(n1)

文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。

原文链接:hanshuliang.blog.csdn.net/article/details/109212687

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。