「遞歸」和「迭代」有哪些區別?

遞歸:你自己不太瞭解小孩子的需求,爲了縮小範圍,讓你的兒子去給孫子挑選。兒子比你強點有限,但依然不太瞭解小孩子的需求。爲了縮小範圍,你又讓你孫子去挑選。如此這般,直到找到合適的玩具。

迭代:你挑了一件覺得不行,又挑了一件又不行。如此這般,直到找到合適的玩具。

所以一句話:遞歸是自己調用自己,每次旨在縮小問題規模。迭代是自己執行很多次,每次旨在更接近目標。

 

理論上講域名查詢有兩種方式:

迭代查詢  A問B一個問題,B不知道答案說你可以問C,然後A再去問C,C推薦D,然後A繼續問D,如此迭代…

遞歸查詢  A問B一個問題,B問C,C問D… 然後D告訴C,C告訴B,B告訴A

上述過程中從resolver到遞歸DNS再到根的查詢過程爲遞歸查詢,遞歸DNS到根、到com、到baidu.com的過程爲迭代查詢。

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