《算法设计与分析》--汉诺塔问题和斐波那契数列问题随笔

1、下面直接列出大体的算法伪代码:

Hanoi(A,B,n-1);

Move(A,C);

Hanoi(B,C,n-1);

分析:对于上面的Hanoi方法中的参数详解,一共不是三个柱子吗?A、B、C,设一共有着n个盘子在A柱子上面。

第一个函数代表着把A柱子上面的n-1个盘子从A柱子移动到B上面(除开最下层的那个盘子,意思就是剩了一个最大的盘子在最下层)。

第二个move函数就是代表着把A柱子剩余的一个盘子移动到C上面

最优一个函数就是代表把最开始移动到B柱子上面的n-1个盘子移动到C柱子上面。

说明:最后说明一下依照这个思想不断的递归就可以求出最后的结果,但是这个算法效率太低,并且是一个难解的算法。

2、斐波那契数列:这个数列的规律就是当前项前两项的和加起来等于该项的值。

规律表示为:F(n) = F(n-1)+F(n-2); 类似于1,1,2,3,5,8,13.....

其实上面这些算法都是包含了递归的思想,其实学习算法就是学习递归的那种思维。学习分治的那种思维,现在想想现在的分布式和集群技术不都是分治法的延伸吗?所以好好学习算法吧!

全部评论

相关推荐

2024-12-27 23:45
已编辑
三江学院 Java
程序员牛肉:死局。学历+无实习+项目比较简单一点。基本就代表失业了。 尤其是项目,功能点实在是太假了。而且提问点也很少。第一个项目中的使用jwt和threadlocal也可以作为亮点写出来嘛?第二个项目中的“后端使用restful风格”,“前端采用vue.JS”,“使用redis”也可以作为亮点嘛? 项目实在是太简单了,基本就是1+1=2的水平。而你目标投递的肯定也是小厂,可小厂哪里有什么培养制度,由于成本的问题,人家更希望你来能直接干活,所以你投小厂也很难投。基本就是死局,也不一定非要走后端这条路。可以再学一学后端之后走测试或者前端。 除此之外,不要相信任何付费改简历的。你这份简历没有改的必要了,先沉淀沉淀
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务