1. 程式人生 > 其它 >[乾貨] DFS深度優先搜尋演算法的形象化理解

[乾貨] DFS深度優先搜尋演算法的形象化理解

何為深度優先搜尋演算法?

百科解釋:

深度優先搜尋是一種在開發爬蟲早期使用較多的方法。它的目的是要達到被搜尋結構的葉結點(即那些不包含任何超鏈的HTML檔案) 。在一個HTML檔案中,當一個超鏈被選擇後,被連結的HTML檔案將執行深度優先搜尋,即在搜尋其餘的超鏈結果之前必須先完整地搜尋單獨的一條鏈。深度優先搜尋沿著HTML檔案上的超鏈走到不能再深入為止,然後返回到某一個HTML檔案,再繼續選擇該HTML檔案中的其他超鏈。當不再有其他超鏈可選擇時,說明搜尋已經結束。

百科所解釋的相對複雜,利用我們生活的例子可以形象地解釋:

形象解釋:

如圖,張三確診為新冠病毒患者,現在疾控中心摸排他的行動軌跡,疾控工作人員就得從一條條接觸鏈上摸排接觸人員(從1鏈開始摸牌):

*** 注意到,鏈10和11 ** 鏈4和5 都掃描了次密接乙!!DFS是需要掃描已經掃過的節點的不同於醫護工作者已經隔離了一名密接,密接者同時又被排查到密接時,不會再大費周章再去隔離一遍。

依次類推,要往下繼續深度搜索,一直到底。

也由此可見DFS演算法的時間複雜度為所有路徑的節點數目總和。

也可見防疫工作也不容易,致敬各位防疫工作者!