深度優(yōu)先搜索DFS 和廣度優(yōu)先搜索BFS(python實(shí)現(xiàn))

DFS(Deep-first-search):?是一種用于遍歷或搜索樹或圖的算法。 這個(gè)算法會(huì)盡可能深的搜索樹的分支。 當(dāng)節(jié)點(diǎn)v的所在邊都己被探尋過比肄,搜索將回溯到發(fā)現(xiàn)節(jié)點(diǎn)v的那條邊的起始節(jié)點(diǎn)。 這一過程一直進(jìn)行到已發(fā)現(xiàn)從源節(jié)點(diǎn)可達(dá)的所有節(jié)點(diǎn)為止。(縱向搜索)

BFS(Breadth-First-Search):是一種圖形搜索演算法莫秆。 簡單的說,BFS是從根節(jié)點(diǎn)開始悔详,沿著樹的寬度遍歷樹的節(jié)點(diǎn)镊屎,如果發(fā)現(xiàn)目標(biāo),則演算終止茄螃。?算法分析:?BFS是一種盲目搜尋法缝驳,目的是系統(tǒng)地展開并檢查圖中的所有節(jié)點(diǎn),以找尋結(jié)果归苍。(橫向搜索)

找到有S到G的路徑

圖結(jié)構(gòu)如下:

DFS方式:

把圖寫成樹的形式


按節(jié)點(diǎn)向下搜尋

(S)

(SA,SD)

(SAB,SAD,SD)

(SABC,SABE,SAD,SD)

(SABED,SABEF,SAD,SD)

(SABEFG,SAD,SD)

搜索到第一條路徑 S--A--B--E--F--G

BFS方式:


從節(jié)點(diǎn)向下遍歷

(S)

(SA,SD)

(SD,SAB,SAD)

(SAB,SAD,SDA,SDE)

(SAD,SDA,SDE,SABC,SABE)

(SDA,SDE,SABC,SABE,SADE)

(SDE,SABC,SABE,SADE,SDAB)

(SABC,SABE,SADE,SDAB,SDEB,SDEF)

(SADE,SDAB,SDEB,SDEF,SABED,SABEF)

(SDAB,SDEB,SDEF,SABED,SABEF,SADEB,SADEF)

(SDEB,SDEF,SABED,SABEF,SADEB,SADEF,SDABC,SDABE)

(SDEF,SABED,SABEF,SADEB,SADEF,SDABC,SDABE,SDEB,SDEF)

(SABED,SABEF,SADEB,SADEF,SDABC,SDABE,SDEB,SDEF,SDEFG)

搜索到路徑: S -- D--E--F--G

方法對比:

1 時(shí)間復(fù)雜度:

DFS和BFS的時(shí)間復(fù)雜度是一樣的用狱,假設(shè)有b個(gè)節(jié)點(diǎn),一共有d層深度

那么時(shí)間復(fù)雜度為O(b^d)

2 空間復(fù)雜度:

BFS的空間復(fù)雜度和時(shí)間復(fù)雜度一樣

DFS的空間復(fù)雜度為O(b*d)

python算法實(shí)現(xiàn):

Note:對于python實(shí)現(xiàn)來說拼弃,深度優(yōu)先搜索和廣度優(yōu)先搜索的不同只是循環(huán)中對于列表的賦值前后的不同

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末夏伊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子吻氧,更是在濱河造成了極大的恐慌溺忧,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盯孙,死亡現(xiàn)場離奇詭異鲁森,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)振惰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門歌溉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人报账,你說我怎么就攤上這事研底〔撼ィ” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵榜晦,是天一觀的道長冠蒋。 經(jīng)常有香客問我,道長乾胶,這世上最難降的妖魔是什么抖剿? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮识窿,結(jié)果婚禮上斩郎,老公的妹妹穿的比我還像新娘。我一直安慰自己喻频,他們只是感情好缩宜,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著甥温,像睡著了一般锻煌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上姻蚓,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天宋梧,我揣著相機(jī)與錄音,去河邊找鬼狰挡。 笑死捂龄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的加叁。 我是一名探鬼主播倦沧,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼殉农!你這毒婦竟也來了刀脏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤超凳,失蹤者是張志新(化名)和其女友劉穎愈污,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體轮傍,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡暂雹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了创夜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杭跪。...
    茶點(diǎn)故事閱讀 38,626評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出涧尿,到底是詐尸還是另有隱情系奉,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布姑廉,位于F島的核電站缺亮,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏桥言。R本人自食惡果不足惜萌踱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望号阿。 院中可真熱鬧并鸵,春花似錦、人聲如沸扔涧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽枯夜。三九已至粉铐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間卤档,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工程剥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留劝枣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓织鲸,卻偏偏與公主長得像舔腾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子搂擦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評論 2 348