專業術語之------迭代,循環,遍歷,遞歸的區別?


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

  1,循環(loop),指的是在滿足條件的情況下,重復執行同一段代碼。比如,while語句。   循環則技能對應集合,列表,數組等,也能對執行代碼進行操作。

  2,迭代(iterate),指的是按照某種順序逐個訪問列表中的每一項。比如,for語句。    迭代只能對應集合,列表,數組等。不能對執行代碼進行迭代。

  3,遍歷(traversal),指的是按照一定的規則訪問樹形結構中的每個節點,而且每個節點都只訪問一次。   遍歷同迭代一樣,也不能對執行代碼進行遍歷。

  4,遞歸(recursion),指的是一個函數不斷調用自身的行為。比如,以編程方式輸出著名的斐波納契數列(http://www.cnblogs.com/feichengwulai/articles/3587848.html中第1題就有用遞歸方法輸出斐波那契數列解題。20-23,41題都用遞歸,41題進行了詳細的解釋!!!)。

    (1),通俗的解釋:遞歸就像往存錢罐里存錢,先往里邊塞錢,2塊,5塊,10塊這樣的塞,叫入棧。取錢的時候,后塞進去的先取出來,這叫出棧。具體多少錢,要全部出棧才知道。  

    (2),遞歸分類線性遞歸尾遞歸

    那么兩種遞歸有什么區別呢?看上邊網址中的41題,里邊有線性遞歸和尾遞歸的對比實例應用和區別解釋

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM