循環、迭代、遍歷和遞歸

 loop、iterate、traversal和recursion這幾個詞是計算機技術書中經常會出現的幾個詞彙。衆所周知,這幾個詞分別翻譯爲:循環、迭代、遍歷和遞歸。乍一看,這幾個詞好像都與重複(repeat)有關,但有的又好像不完全是重複的意思。那麼這幾個詞到底各是什麼含義,有什麼區別和聯繫呢?下面就試着解釋一下。

  • 循環(loop),指的是在滿足條件的情況下,重複執行同一段代碼。比如,while語句。
  • 迭代(iterate),指的是按照某種順序逐個訪問列表中的每一項。比如,for語句。
  • 遍歷(traversal),指的是按照一定的規則訪問樹形結構中的每個節點,而且每個節點都只訪問一次。
  • 遞歸(recursion),指的是一個函數不斷調用自身的行爲。比如,以編程方式輸出著名的斐波納契數列。

有了以上定義,這幾個概念之間的區別其實就比較清楚了。至於它們之間的聯繫,嚴格來講,它們似乎都屬於算法的範疇。換句話說,它們只不過是解決問題的不同手段和方式,而本質上則都是計算機編程中達成特定目標的途徑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章