迭代和遞歸的理解

1、本來是編程的內容,但是看到了dns上面的“域名服務器的解析”過程中也有,因此想總結一下。

2、dns的查詢方法,有2種:遞歸和迭代。怎麼區分的呢?通俗的說,遞歸:主機向本地dns問東西,然後主機就直接等結果就OK了;迭代:本地dns向其他高級的dns問東西,只會告訴你一個新的信息,然後你自己再去根據這個信息,再去問,直到問道結果返回。這裏有一個區別就是:遞歸不用自己動手,直接等結果;迭代去要你自己每次去問,當然,最後能夠得到結果。

3、編程的角度。遞歸,就是調用自己,或者說調用自己的方法,然後坐等返回結果,也是不用自己去操刀;迭代,就是在一定的條件下,重複着同樣的計算(做着同樣的事情),但是,數值一直在更新,直到得到結果。

4、總結:用一個例子說一下,香港黑社會線人的例子。警察A想知道幕後老大B是誰,所以找到了線人C,這裏採用兩種方式比較一下。線人C,自己又去找它的線人D,線人D又去找它的線人E,最後E把B告訴了D,D告訴了C,最後C高速A是B ,OK,這種方式就是遞歸,因爲A坐等C返回的結果;如果線人直接告訴A,說D知道內幕,你找他去,然後A又去找D,D告訴A,E知道是誰,然後A又去找E,最後E高速A是B,這就是迭代,因爲每次都是A自己再更新結果,逼近真相。

5、最後寫一下兩個的英文,一個是recursion,一個是iteration 。

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