这一章,就一个主题,什么是递归式?如何求解递归式?
递归式,就是一个函数,自己调用自己,但是有一个最基本的情况,这种情况下,它就会自动返回跳出递归。
用什么方法?
3种方法:
1.代换法
2.递归树方法
3.主方法
关于代换法:
一个字,猜,也就是你会蒙?
怎么蒙?
需要你的经验。
也就是说,有经验的人,一看就知道多少,然后,用归纳法证明,新手,不推荐。
关于递归树:
最笨的办法,就是你把那个递归式,一项一项展开,可能吗?对,这里的展开就是画这棵树,使他不能有递归表达式,然后把整个图中的代价加起来就是答案
怎么使用?
你画图算,然后,你用代换法,说是你猜出来的,然后证明,求解。
关于主方法:
针对形如T(n) = aT(n/b) + f(n)的递归式:
T(n) = aT(n/b) + f(n)描述了将规模为n的问题划分为a个子问题的算法的运行时间,每个子问题的规模为n/b。
主方法依赖于主定理:
主定理的三种情况,经过分析,可以发现都是把f(n)与
比较。一句话,谁大就是谁。
第一种情况是
更大,第二种情况是
与f(n)相等,第三种情况是f(n)更大。
但是,这三种情况并未完全覆盖所有可能的f(n):
第一种情况是f(n)多项式的小于
,而第三种情况是f(n)多项式的大于
,即两者相差的是
。如果两者相差的不是
,则无法用主定理来确定界。
至于主定理的证明,这个真不关你任何事情,因为估计你也不会看那些东西,所以我们就不用去花实时间看了。
本文介绍了递归式的概念及其三种求解方法:代换法、递归树方法和主方法。详细阐述了每种方法的应用场景及操作步骤,并对主方法背后的主定理进行了概述。
392

被折叠的 条评论
为什么被折叠?



