循环、迭代、遍历和递归
浏览:5100次 出处信息
本想先找本算法和数据结构的书参考一下,但转念一想:不如考考自己的总结和逻辑表达能力。
loop、iterate、traversal和recursion这几个词是计算机技术书中经常会出现的几个词汇。众所周知,这几个词分别翻译为:循环、迭代、遍历和递归。乍一看,这几个词好像都与重复(repeat)有关,但有的又好像不完全是重复的意思。那么这几个词到底各是什么含义,有什么区别和联系呢?下面就试着解释一下。
- 循环(loop),指的是在满足条件的情况下,重复执行同一段代码。比如,while语句。
- 迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项。比如,for语句。
- 遍历(traversal),指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。
- 递归(recursion),指的是一个函数不断调用自身的行为。比如,以编程方式输出著名的斐波纳契数列。
有了以上定义,这几个概念之间的区别其实就比较清楚了。至于它们之间的联系,严格来讲,它们似乎都属于算法的范畴。换句话说,它们只不过是解决问题的不同手段和方式,而本质上则都是计算机编程中达成特定目标的途径。
建议继续学习:
- python编程细节──遍历dict的两种方法比较 (阅读:19774)
- 在C++中实现foreach循环,比for_each更简洁! (阅读:9100)
- PHP与递归Recursion (阅读:8849)
- 腾讯敏捷开发及快速迭代 (阅读:7381)
- for 循环为何可恨? (阅读:5089)
- C/C++循环获取文件中的每行数据(别以为很简单!) (阅读:4721)
- 递归并不一定非得是“自己调用自己的function” (阅读:3849)
- 最近几个容易错的地方总结(hash_map迭代删除,localtime(),线程状态) (阅读:3726)
- 小心递归次数限制 (阅读:3669)
- 优化次数过多的循环 (阅读:3273)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:关于哈希map奇慢无比的原因定位
后一篇:如何给指定地址空间拍一个快照 >>
文章信息
- 作者:为之漫笔 来源: 为之漫笔
- 标签: 循环 迭代 递归 遍历
- 发布时间:2011-01-27 23:01:13
建议继续学习
近3天十大热文
-
[903] WordPress插件开发 -- 在插件使用 -
[135] 解决 nginx 反向代理网页首尾出现神秘字 -
[56] 整理了一份招PHP高级工程师的面试题 -
[54] Innodb分表太多或者表分区太多,会导致内 -
[54] 如何保证一个程序在单台服务器上只有唯一实例( -
[52] 全站换域名时利用nginx和javascri -
[52] 海量小文件存储 -
[52] CloudSMS:免费匿名的云短信 -
[51] 用 Jquery 模拟 select -
[49] ps 命令常见用法
