递归、分治、动态规划实例分析.ppt

递归、分治、动态规划实例分析

递归、分治、动态规划与回溯;;递归与分治基本原理;对这k个子问题分别求解。如果子问题的规模仍然不够小,则再划分为k个子问题,如此递归的进行下去,直到问题规模足够小,很容易求出其解为止。;将求出的小规模的问题的解合并为一个更大规模的问题的解,自底向上逐步求出原来问题的解。;递归、递推、分治;斐波那契数列(Fibonacci),对于f(30),如果使用递归则需要运行1664079次,而递推只需30次就可以了,速度悬殊。;递归的应用范围;递归的应用范围;n阶楼梯有几种不同的走法?;n阶楼梯有几种不同的走法?;分析upstairs(4)的运行情况;分析upstairs(4)的运行情况;汉诺塔问题。;;;;例4 排列问题 设计一个递归算法生成n个元素{r1,r2,…,rn}的全排列。 ;例5 整数划分问题 将正整数n表示成一系列正整数之和:n=n1+n2+…+nk, 其中n1≥n2≥…≥nk≥1,k≥1。 正整数n的这种表示称为正整数n的划分。求正整数n的不 同划分个数。 例如正整数6有如下11种不同的划分: 6; 5+1; 4+2,4+1+1; 3+3,3+2+1,3+1+1+1; 2+2+2,2+2+1+1,2+1+1+1+1; 1+1+1+1+1+1。 ;(2) q(n,m)=q(n,n),m?n; 最大加数n1实际上不能大于n。因

文档评论(0)

1亿VIP精品文档

相关文档