遞迴與迭代兩者概念區別及例項講解

2021-07-06 01:54:13 字數 972 閱讀 2931

我對迭代和遞迴兩者概念一直挺模糊的,希望通過這個題目來**下兩者區別。

首先,迭代和遞迴的概念在程式設計思維以及計算機網路dns的反饋查詢中都有出現。

遞迴和迭代都是迴圈的一種。

簡單地說,遞迴是重複呼叫函式自身實現迴圈。迭代是函式內某段**實現迴圈,而迭代與普通迴圈的區別是:迴圈**中參與運算的變數同時是儲存結果的變數,當前儲存的   結果作為下一次迴圈計算的初始值。

遞迴迴圈中,遇到滿足終止條件的情況時逐層返回來結束。迭代則使用計數器結束迴圈。當然很多情況都是多種迴圈混合採用,這要根據具體需求。

可能理論性的東西不是很清楚,那麼,舉乙個列子來說明。

#include int fibonacci(int n)

int main()

這個就是經典的遞迴實現斐波那契數列。

迭代經典例子就是實數的累加,比如計算1-100所有實數的和。

intv=1;

for(i=2;i<=100;i++)

這兩個舉例是關於程式設計實現中的遞迴和迭代演算法實現,

那麼,dns搜尋反饋中的遞迴和迭代又是什麼情況呢?

其實,既然使用了遞迴查詢和迭代查詢的名詞形式,那麼本質思維是類似的。

主機向本地網域名稱伺服器的查詢一般都是採用遞迴查詢。如果主機所詢問的本地網域名稱伺服器不知道被查詢網域名稱的 ip 位址,那麼本地網域名稱伺服器就以 dns 客戶的身份,向其他根網域名稱伺服器繼續發出查詢請求報文。

本地網域名稱伺服器向根網域名稱伺服器的查詢通常是採用迭代查詢。當根網域名稱伺服器收到本地網域名稱伺服器的迭代查詢請求報文時,要麼給出所要查詢的 ip 位址,要麼告訴本地網域名稱伺服器:「你下一步應當向哪乙個網域名稱伺服器進行查詢」。然後讓本地網域名稱伺服器進行後續的查詢。

在實際運用中,本地網域名稱伺服器一般採用迭代查詢  。

思考題:你可以畫出dns迭代查詢的流程圖嗎?

TCP UDP協議及兩者的區別

二 upd的定義 使用者資料報協議 三 tcp和udp的區別 位於傳輸層,提供可靠的位元組流服務。位元組流服務 byte stream service 是指,為了方便傳輸,將大塊資料分割成以報文段 segment 為單位的資料報進行管理。而可靠的傳輸服務是指,能夠把資料準確可靠地傳給對方。即tcp ...

GPU與CPU兩者的區別

cpu和gpu主要區別 1 cpu是電腦的 處理器。2 gpu是電腦的圖形處理器。3 cpu是一塊超大規模的積體電路,其中包含alu算術邏輯運算單元 cache高速緩衝儲存器以及bus匯流排。4 cpu是一台計算機的控制和運算核心,它的主要功能便是解釋計算機發出的指令以及處理電腦軟體中的大資料。5 ...

FTP與SFTP兩者有什麼區別

在實際專案開發中最常使用的檔案傳輸的方式有ftp和sftp兩種,但是這兩個傳輸方式各有什麼特點呢?本文接下來將討論sftp ftp的區別。一 ftp協議 ftp是tcp ip協議組中的協議之一,tp協議由兩個部分組成 ftp伺服器 用來儲存檔案 ftp客戶端 使用者可以使用ftp客戶端通過ftp協議...