日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

深搜与广搜

發(fā)布時(shí)間:2025/3/16 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深搜与广搜 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

深度優(yōu)先搜索與廣度優(yōu)先搜索

深度優(yōu)先搜索的思想是盡可能深的搜索,算法藝術(shù)與信息學(xué)競賽一書中提到:隨機(jī)搜索就像是在慌亂之中找東西,因?yàn)槟悴⒉恢罇|西在哪,廣度優(yōu)先搜索則像是你的眼鏡掉在地上之

深度優(yōu)先搜索 (DFS)

深度優(yōu)先搜索屬于圖算法的一種,英文縮寫為DFS即Depth First Search.其過程簡要來說是對(duì)每一個(gè)可能的分支路徑深入到不能再深入為止,而且每個(gè)節(jié)點(diǎn)只能訪問一次;

采用的搜索方法的特點(diǎn)是盡可能先對(duì)縱深方向進(jìn)行搜索。

基本思路編輯

深度優(yōu)先遍歷圖的方法是,從圖中某頂點(diǎn)v出發(fā):
(1)訪問頂點(diǎn)v;
(2)依次從v的未被訪問的鄰接點(diǎn)出發(fā),對(duì)圖進(jìn)行深度優(yōu)先遍歷;直至圖中和v有路徑相通的頂點(diǎn)都被訪問;
(3)若此時(shí)圖中尚有頂點(diǎn)未被訪問,則從一個(gè)未被訪問的頂點(diǎn)出發(fā),重新進(jìn)行深度優(yōu)先遍歷,直到圖中所有頂點(diǎn)均被訪問過為止。
? 例如對(duì)于以下一個(gè)樹:
????????? 1
??????? 2?? 3
????? 4?? 5?? 6
深度優(yōu)先的策略是1->2->4->退后一步->5->退后一步->退后一步->3->6->結(jié)束
而廣度優(yōu)先則是第一次:1->2->3第2次:4->5->6

從深度優(yōu)先的策略上看就知道深搜一般是用遞歸來實(shí)現(xiàn);深度優(yōu)先搜索的框架很簡單:
void DFS ( int n )
{
???? if ( 滿足結(jié)束條件,即搜索到終點(diǎn) )
???????? return ;
???? else
???????? DFS ( n + 1 );
}
深搜的框架是如此簡單,但是它可能有很多變種,一般用來搜索圖,那么傳的參數(shù)就不可能只有一個(gè)那么簡單;


廣度優(yōu)先搜索(BFS)

寬度優(yōu)先搜索算法(又稱廣度優(yōu)先搜索)是最簡便的圖的搜索算法之一,這一算法也是很多重要的圖的算法的原型。Dijkstra單源最短路徑算法和Prim最小生成樹算法都采用了和寬度優(yōu)先搜索類似的思想。其別名又叫BFS,屬于一種盲目搜尋法,目的是系統(tǒng)地展開并檢查圖中的所有節(jié)點(diǎn),以找尋結(jié)果。換句話說,它并不考慮結(jié)果的可能位置,徹底地搜索整張圖,直到找到結(jié)果為止。

《算法導(dǎo)論》對(duì)兩種搜索都采用了很聰明的做法,用白色WHITE來標(biāo)志未發(fā)現(xiàn)的節(jié)點(diǎn),用灰色GRAY來標(biāo)志第一次被發(fā)現(xiàn)的節(jié)點(diǎn),用黑色BLACK來標(biāo)志第二次被發(fā)現(xiàn)的節(jié)點(diǎn)。

對(duì)比:

深度優(yōu)先搜索用棧(stack)來實(shí)現(xiàn),整個(gè)過程可以想象成一個(gè)倒立的樹形:
1、把根節(jié)點(diǎn)壓入棧中。
2、每次從棧中彈出一個(gè)元素,搜索所有在它下一級(jí)的元素,把這些元素壓入棧中。并把這個(gè)元素記為它下一級(jí)元素的前驅(qū)。
3、找到所要找的元素時(shí)結(jié)束程序。
4、如果遍歷整個(gè)樹還沒有找到,結(jié)束程序。
廣度優(yōu)先搜索使用隊(duì)列(queue)來實(shí)現(xiàn),整個(gè)過程也可以看做一個(gè)倒立的樹形:
1、把根節(jié)點(diǎn)放到隊(duì)列的末尾。
2、每次從隊(duì)列的頭部取出一個(gè)元素,查看這個(gè)元素所有的下一級(jí)元素,把它們放到隊(duì)列的末尾。并把這個(gè)元素記為它下一級(jí)元素的前驅(qū)。
3、找到所要找的元素時(shí)結(jié)束程序。
4、如果遍歷整個(gè)樹還沒有找到,結(jié)束程序。

總結(jié)

以上是生活随笔為你收集整理的深搜与广搜的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。