递归和分治思想1 - 数据结构和算法31
递归和分治思想1
让编程改变世界
Change the world by program
递归
妹子,甲鱼哥今天给你讲一个故事吧,从前我有个小弟,酷爱探险,有一次他进了一个山洞,然后又出来,然后又进去,然后又出来,然后又进去,然后又出来。。。。。。后来他很开心~ 艹,你说什么呢? 妹子悟性真高^_^ 事实上递归就跟鸡生蛋蛋又生鸡的道理一样,只有等哪一天鸡不想生蛋了,做了绝孕手术或者用上了杜蕾斯,这个递归就算结束了。斐波那契(Fibonacci)数列的递归实现
插句话:Sierpinski三角形源代码放在论坛,有需要的朋友可以去下载。 斐老跟小甲鱼有个共同爱好,就是老爱拿交配说事儿,不同的是小甲鱼注重过程和细节,斐老更关心结果,下边就有他讲的一个故事: 如果说兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。假设所有兔子都不会死去,能够一直干下去,那么一年以后可以繁殖多少对兔子呢? [caption id="attachment_2196" align="alignnone" width="530"]![斐波那契数列](http://blog.fishc.com/wp-content/uploads/2013/02/11.jpg)
斐波那契数列的迭代实现
我们都知道兔子繁殖能力是惊人的,如下图: [caption id="attachment_2197" align="alignnone" width="530"]![斐波那契数列](http://blog.fishc.com/wp-content/uploads/2013/02/21.jpg)
![斐波那契数列](http://blog.fishc.com/wp-content/uploads/2013/02/31.jpg)
斐波那契数列的递归实现
递归事实上就是函数自己调用自己,我们先一起看下代码的实现,然后再来分析: [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"]
![斐波那契数列](http://blog.fishc.com/wp-content/uploads/2013/02/41.jpg)