loop、iterate、traversal和recursion這幾個詞是計算機技術書中經常會出現的幾個詞彙。眾所周知,這幾個詞分別翻譯為:迴圈、迭代、遍歷和遞迴。乍一看,這幾個詞好像都與重複(repeat)有關,但有的又好像不完全是重複的意思。那麼這幾個詞到底各是什麼含義,有什麼區別和聯絡呢?下面就試著解釋一下。
有了以上定義,這幾個概念之間的區別其實就比較清楚了。至於它們之間的聯絡,嚴格來講,它們似乎都屬於演算法的範疇。換句話說,它們只不過是解決問題的不同手段和方式,而本質上則都是計算機程式設計中達成特定目標的途徑。
摘抄至迴圈、迭代、遍歷和遞迴
loop、iterate、traversal和recursion這幾個詞是計算機技術書中經常會出現的幾個詞彙。眾所周知,這幾個詞分別翻譯為:迴圈、迭代、遍歷和遞迴。乍一看,這幾個詞好像都與重複(repeat)有關,但有的又好像不完全是重複的意思。那麼這幾個詞到底各是什麼含義,有什麼區別和聯絡呢?下面就試著解釋一下。
迴圈(loop),指的是在滿足條件的情況下,重複執行同一段程式碼。比如,while語句。迭代(iterate),指的是按照某種順序逐個訪問列表中的每一項。比如,for語句。遍歷(traversal),指的是按照一定的規則訪問樹形結構中的每個節點,而且每個節點都只訪問一次。遞迴(recursion),指的是一個函式不斷呼叫自身的行為。比如,以程式設計方式輸出著名的斐波納契數列。有了以上定義,這幾個概念之間的區別其實就比較清楚了。至於它們之間的聯絡,嚴格來講,它們似乎都屬於演算法的範疇。換句話說,它們只不過是解決問題的不同手段和方式,而本質上則都是計算機程式設計中達成特定目標的途徑。
摘抄至迴圈、迭代、遍歷和遞迴