递归和分治思想1 - 数据结构和算法31
2013-02-09 05:32
363 查看
递归和分治思想1
让编程改变世界Change the world by program
递归
妹子,甲鱼哥今天给你讲一个故事吧,从前我有个小弟,酷爱探险,有一次他进了一个山洞,然后又出来,然后又进去,然后又出来,然后又进去,然后又出来。。。。。。后来他很开心~艹,你说什么呢?
妹子悟性真高^_^
事实上递归就跟鸡生蛋蛋又生鸡的道理一样,只有等哪一天鸡不想生蛋了,做了绝孕手术或者用上了杜蕾斯,这个递归就算结束了。
斐波那契(Fibonacci)数列的递归实现
插句话:Sierpinski三角形源代码放在论坛,有需要的朋友可以去下载。斐老跟小甲鱼有个共同爱好,就是老爱拿交配说事儿,不同的是小甲鱼注重过程和细节,斐老更关心结果,下边就有他讲的一个故事:
如果说兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。假设所有兔子都不会死去,能够一直干下去,那么一年以后可以繁殖多少对兔子呢?
[caption id="attachment_2196" align="alignnone" width="530"]
斐波那契数列[/caption]
斐波那契数列的迭代实现
我们都知道兔子繁殖能力是惊人的,如下图:[caption id="attachment_2197" align="alignnone" width="530"]
斐波那契数列[/caption]
我们可以用数学函数来定义:
[caption id="attachment_2200" align="alignnone" width="469"]
斐波那契数列[/caption]
课间练习:假设我们需要打印出前40位斐波那契数列数,我们不妨一起考虑下用迭代如何实现?
斐波那契数列的递归实现
递归事实上就是函数自己调用自己,我们先一起看下代码的实现,然后再来分析:[codesyntax lang="c"]
int Fib(int i) { if( i < 2 ) return i == 0 ? 0 : 1; return Fib(i-1) + Fib(i-2); }
[/codesyntax]
[caption id="attachment_2201" align="alignnone" width="530"]
斐波那契数列[/caption]
[buy] 获得所有教学视频、课件、源代码等资源打包 [/buy]
[Downlink href='http://kuai.xunlei.com/d/BdsUAwI5aABjZRVRe7c']视频下载[/Downlink]
[Downlink href='http://urlxf.qq.com/?2Eju6bj']备胎下载[/Downlink]
相关文章推荐
- 递归和分治思想1 - 数据结构和算法31
- 递归和分治思想4|八皇后问题 - 数据结构和算法34
- 递归和分治思想4|八皇后问题 - 数据结构和算法34
- 递归和分治思想2 - 数据结构和算法32
- 递归和分治思想3|汉诺塔 - 数据结构和算法33
- 递归和分治思想2 - 数据结构和算法32
- 递归和分治思想3|汉诺塔 - 数据结构和算法33
- 递归和分治思想3|汉诺塔 – 数据结构和算法33
- 递归和分治思想4|八皇后问题 – 数据结构和算法34
- 利用分治思想,写一个求解从n个元素里选取m个有多少种组合方案的(非递归)高性能算法
- 常用算法思想复习之<递归与分治>
- 求二维平面最近点对算法; 分治思想; 递归写的好精准,模仿ACM模板写的.;很多细节处理的很漂亮;
- 数据结构之递归与分治的思想
- 【算法和数据结构】分治思想之二分查找(C++实现)
- 区域增长算法的设计与实现(递归思想和堆栈数据结构)
- 递归是一种算法结构,回溯是一种算法思想
- 数据结构&算法——递归
- 常用算法思想之:分治思想
- 数据结构和算法2之递归
- 算法与数据结构-分治法及汉诺塔问题求解