简单辨析:循环、递归、迭代、遍历

来源:互联网 发布:复旦大数据学院学费 编辑:程序博客网 时间:2024/06/05 16:26

前言

      在学习算法的过程中,常会遇到Loop、Iterate、Traversal、Recursion,他们都与重复(Repeat)有关,但又不完全是重复的意思。那么这几个词到底各是什么含义,有什么区别和联系。为了不再让它们是我心里的简单的重复的感觉,为了给它们定下一个简单的定义,便有了我下面的分享:
  

循环(loop)

      循环(loop),指的是在满足条件的情况下,重复执行同一段代码。比如,while语句。

递归(Iterate)

      递归(recursion),指的是一个函数不断调用自身的行为。比如,以编程方式输出著名的斐波纳契数列。

      递归分类:线性递归和尾递归。

迭代(Traversal)

      迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项。比如,for语句。迭代只能对应集合,列表,数组等。不能对执行代码进行迭代。

遍历(Recursion)

      遍历(traversal),指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。 遍历同迭代一样,也不能对执行代码进行遍历。

小结

      在学习的路上总会遇到很多相近的概念多次的相遇和使用或许会让我们对它有一个自己的感觉和解释,但是为了建立起自己的知识网更加准确的使用了解代码间的联系,就需要我们花一些时间找找联系区分它们的定义。还在努力学习积累的路上,荣幸与您分享!