最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

102. 103. 107. | 寬度優(yōu)先搜索(BFS)

2020-05-25 09:58 作者:有木乘舟  | 我要投稿


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

??從算法的觀點(diǎn),所有因?yàn)檎归_(kāi)節(jié)點(diǎn)而得到的子節(jié)點(diǎn)都會(huì)被加進(jìn)一個(gè)先進(jìn)先出的隊(duì)列中。一般的實(shí)驗(yàn)里,其鄰居節(jié)點(diǎn)尚未被檢驗(yàn)過(guò)的節(jié)點(diǎn)會(huì)被放置在一個(gè)被稱為 open 的容器中(例如隊(duì)列或是鏈表),而被檢驗(yàn)過(guò)的節(jié)點(diǎn)則被放置在被稱為 closed 的容器中。(open-closed表)。


分析:

? BFS通常采用層次遍歷的方式來(lái)遍歷整個(gè)圖(樹(shù)),它利用隊(duì)列數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)未遍歷過(guò)的但即將遍歷的點(diǎn)(open-list),因此如何判斷已經(jīng)遍歷完一層,是非常關(guān)鍵的一點(diǎn)。

? 在這題里,隊(duì)列中存儲(chǔ)的都是同一層的節(jié)點(diǎn),因此可以直接拿來(lái)計(jì)算。

? ?兩道題的唯一區(qū)別就是最后 res 的插入方式,一個(gè)是insert插入到開(kāi)頭,一個(gè)是push_back插入到尾部。

? 提交后發(fā)現(xiàn),insert函數(shù)比push_back函數(shù)要慢的多,因此107.這題要優(yōu)化的話,可以從這個(gè)點(diǎn)入手。

分析:

? 還是一樣的題目,只需要加入個(gè)條件判斷是否到了需要翻轉(zhuǎn)節(jié)點(diǎn)順序的層數(shù)即可。

??

102. 103. 107. | 寬度優(yōu)先搜索(BFS)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
舞阳县| 崇左市| 鄂尔多斯市| 恩施市| 阜宁县| 游戏| 昂仁县| 盐城市| 扶余县| 东乡县| 沅陵县| 平谷区| 富裕县| 宜君县| 盐亭县| 买车| 介休市| 光泽县| 禄劝| 巧家县| 仙桃市| 绥滨县| 渭源县| 滨州市| 临猗县| 乐清市| 尼勒克县| 耒阳市| 江源县| 临颍县| 璧山县| 武乡县| 梁平县| 白玉县| 家居| 紫阳县| 郑州市| 南木林县| 玉门市| 徐水县| 休宁县|