回覆列表
-
1 # 嘻嘻哈哈真的好
-
2 # 使用者1740119262927
“遞迴”和“迭代”的區別如下:
1、遞迴的基本概念:程式呼叫自身的程式設計技巧稱為遞迴,是函式自己呼叫自己.一個函式在其定義中直接或間接呼叫自身的一種方法,它通常把一個大型的複雜的問題轉化為一個與原問題相似的規模較小的問題來解決,可以極大的減少程式碼量.遞迴的能力在於用有限的語句來定義物件的無限集合。
2、迭代:利用變數的原值推算出變數的一個新值.如果遞迴是自己呼叫自己的話,迭代就是A不停的呼叫B。
3、遞迴中一定有迭代,但是迭代中不一定有遞迴,大部分可以相互轉換.能用迭代的不用遞迴,遞迴呼叫函式,浪費空間,並且遞迴太深容易造成堆疊的溢位。
遞迴和迭代都是迴圈的一種。簡單地說,遞迴是重複呼叫函式自身實現迴圈。迭代是函式內某段程式碼實現迴圈,而迭代與普通迴圈的區別是:迴圈程式碼中參與運算的變數同時是儲存結果的變數,當前儲存的結果作為下一次迴圈計算的初始值。 遞迴迴圈中,遇到滿足終止條件的情況時逐層返回來結束。迭代則使用計數器結束迴圈。當然很多情況都是多種迴圈混合採用,這要根據具體需求。 遞迴的例子,比如給定一個整數陣列,採用折半查詢返回指定值在陣列中的索引,假設陣列已排序,為方便描述,假設元素都為正數,陣列長度為2的整數倍。折半查詢是查詢的一種,比遍歷所有元素要快很多。 迭代經典例子就是實數的累加,比如計算1-100所有實數的和。