算法——递归(新)
来源:互联网 发布:oracle12c数据库下载 编辑:程序博客网 时间:2024/06/05 08:18
有关递归的总结之前做过,但是由于只是知识点的简单罗列和堆积,没有自己的思考,没有达到总结的目的,不能将知识编织成网。旧文链接:算法——递归
所以,现在重写一遍,不足之处望读者指正。下面是有关递归的一张思维导图:
这样看的话,比之前那篇的文字清爽了不少,当然,必要的解说描述还是需要的。
递归的定义非常简单:程序调用自身的编程技巧。
由于在递归调用的过程当中,系统为每一层的返回点、局部量等开辟了栈来存储,所以递归的底层实现其实是一个栈。同时需要注意的是递归次数过多容易造成栈溢出。
递归总结
递归算法就是一个函数通过不断对自己的调用而求得最终结果的一种思维巧妙但是开销很大的算法。递归的底层实现其实是一个栈。栈的特点是后进先出,也就是最后进入栈的事件是最先被处理的。它就像一个黑盒子,可以给我们最终的输出结果,却不用知道其内部到底经历了怎样的一个计算过程,其内部就是一个不断分解的过程,将一个复杂的计算不断拆分,变成一个嵌套一个的相同的小零件,这样可以让人很明白的理解计算的过程。
ps:
经过了米老师有关学习方法的会议之后,反观自身,同样存在着类似的问题。归根到底是思想意识上的问题。不少博客总结都是简单的知识点的罗列和堆砌,但是这些都在教材上写着呢,用不着写在博客上。博客是写给自己的,是凝聚着自己思考的文章,如果只是罗列知识点,看书就可以,没有写博客的必要。像那样的博客,写的再多也变不成自己的东西。不思考,要脑子干什么?只长嘴不就行啦?
我们把太多的知识都放诉诸文字,博客都快成了教材副本了,太多的文字让我们不愿意思考,企图一口吃成个胖子,妄想一劳永逸。但是学习本不该是这样的一个过程。学习应该是不断的重复,不断的总结和升华,让思考内化成自己的一部分,流淌在血液中,大脑能够随时被调动起来,那才是高效的学习,才能迸发出智慧。罗列只是第一步,作为人类的我们,总不能死在第一步吧?
- 算法——递归(新)
- 算法——递归算法
- 算法——递归
- 算法——递归
- 算法——递归
- 常用算法—递归
- 算法专题——递归算法(转载)
- 全排列的算法(七)——递归算法
- 算法分析与设计——递归算法(一)
- 递归算法终极理解—用人脑理解递归算法
- 递归算法—输入字母逆序输出&汉诺塔递归算法
- 常用算法——递归
- C++算法——递归
- 递归算法——Hannoi
- 递归算法——妙
- 算法入门——递归
- 经典算法——递归
- 【数据结构】递归算法—汉诺塔
- JavaScript动态控制时间刷新,几秒后重定向一个新的页面
- easyUI 获取控件属性
- HCDA(华为认证数据通信工程师)-华为培训认证
- python基础教程_学习笔记25:程序打包
- java并发编程实战——读书笔记
- 算法——递归(新)
- Android图片解码分辨率问题
- Google地图地址取经纬度、经纬度取地址API
- SQL高级查询
- Highcharts在IE中出现重影问题?
- 数据抽取工具
- Android蓝牙开发(一):概况
- POJ 1258:Agri-Net(最小生成树&&prim)
- thread-mutex