广搜与深搜的比较
2018-1-23
廣搜,也就是我們所說的BFS,等同于樹一層一層的遍歷過程,我們需要將該節(jié)點(diǎn)對(duì)應(yīng)的所有子節(jié)點(diǎn)的狀態(tài)都加以保存,所以從這個(gè)方面來說,它的開銷還是比較大的,但是它特別適用于求解最短路徑的問題,因?yàn)槲覀兯苷业降牡谝粋€(gè)滿足條件的就已經(jīng)是最優(yōu)解了(因?yàn)槲覀円呀?jīng)是按照樹的層數(shù)進(jìn)行遍歷的了),而對(duì)于深搜而言,我們必須把這一棵樹遍歷結(jié)束之后,我們才能求解出我們所要的解,但是它的內(nèi)存占用相對(duì)比較少。
除此之外,深搜主要用棧這種數(shù)據(jù)結(jié)構(gòu),而廣搜主要是用隊(duì)列這種數(shù)據(jù)結(jié)構(gòu)。
深搜還分為遞歸與非遞歸這兩種方法,其中遞歸比較適用于遞歸深度不那么深的情況下,否則的話就會(huì)發(fā)生棧溢出,但是我們也可以使用剪枝來滿足我們的求解。這就對(duì)我們要求比較高了。。。
總結(jié)
- 上一篇: python 中的 and / or
- 下一篇: 安全 - 堡垒机 - Jumpserve