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

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

文章目录

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

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





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


Hanoi 问题 :


递推方程为 : T ( n ) = 2 T ( n − 1 ) + 1 T(n) =2 T(n-1) + 1T(n)=2T(n−1)+1

初值 : T ( 1 ) = 1 T(1) = 1T(1)=1

解 : T ( n ) = 2 n − 1 T(n) = 2^n - 1T(n)=2

n

−1


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



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






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


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


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


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


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


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


最终解为 : W ( n ) = O ( n 2 ) W(n) = O(n^2)W(n)=O(n

2

) , 精确值为 W ( n ) = n ( n − 1 ) 2 W(n) = \cfrac{n(n-1)}{2}W(n)=

2

n(n−1)

 


目录
相关文章
|
6月前
|
算法
动态规划求解超详细介绍 例题+代码
动态规划求解超详细介绍 例题+代码
动态规划| 【斐波那契数列模型 】|1137.第N个泰波那锲数
动态规划| 【斐波那契数列模型 】|1137.第N个泰波那锲数
|
6月前
leetcode-990:等式方程的可满足性
leetcode-990:等式方程的可满足性
47 0
|
Python
递推方程
递推方程是一种数学方程,其中未知量的值被表示为先前已知量值的函数。递推方程通常具有递归的形式,即一个或多个变量被递归地定义为同一变量的函数。递推方程的一个关键特征是,解决方案通常可以通过迭代计算得到,而不是直接求解。递推方程广泛应用于数学、物理、计算机科学等领域。
113 0
|
算法
秒懂算法 | 递推方程求解方法
时间复杂度和空间复杂度表示为递推方程的两种求解方法。
330 1
秒懂算法 | 递推方程求解方法
|
人工智能
Leetcode53/152—最大子数组和/最大子数组乘积(状态转移方程/不熟)
Leetcode53/152—最大子数组和/最大子数组乘积(状态转移方程/不熟)
110 0
|
算法
【递归与递推 3】AcWing 717. 简单斐波那契(求解斐波那契数列的若干方法)
【递归与递推 3】AcWing 717. 简单斐波那契(求解斐波那契数列的若干方法)
100 0
【递归与递推 3】AcWing 717. 简单斐波那契(求解斐波那契数列的若干方法)
|
机器学习/深度学习 算法
斐波拉契数列的递推递归求解算法
斐波拉契数列的递推递归求解算法
113 0
康托展开公式与全排列应用
康托展开公式与全排列应用
124 0
|
机器学习/深度学习
【组合数学】递推方程 ( 递推方程示例 1 | 列出递推方程 )
【组合数学】递推方程 ( 递推方程示例 1 | 列出递推方程 )
136 0