本文主要是介绍[干货] DFS深度优先搜索算法的形象化理解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
何为深度优先搜索算法?
百科解释:
深度优先搜索是一种在开发爬虫早期使用较多的方法。它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链的HTML文件) 。在一个HTML文件中,当一个超链被选择后,被链接的HTML文件将执行深度优先搜索,即在搜索其余的超链结果之前必须先完整地搜索单独的一条链。深度优先搜索沿着HTML文件上的超链走到不能再深入为止,然后返回到某一个HTML文件,再继续选择该HTML文件中的其他超链。当不再有其他超链可选择时,说明搜索已经结束。
百科所解释的相对复杂,利用我们生活的例子可以形象地解释:
形象解释:
如图,张三确诊为新冠病毒患者,现在疾控中心摸排他的行动轨迹,疾控工作人员就得从一条条接触链上摸排接触人员(从1链开始摸牌):
*** 注意到,链10和11 ** 链4和5 都扫描了次密接乙,!!DFS是需要扫描已经扫过的节点的不同于医护工作者已经隔离了一名密接,密接者同时又被排查到密接时,不会再大费周章再去隔离一遍。
依次类推,要往下继续深度搜索,一直到底。
也由此可见DFS算法的时间复杂度为所有路径的节点数目总和。
也可见防疫工作也不容易,致敬各位防疫工作者!
这篇关于[干货] DFS深度优先搜索算法的形象化理解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!