Python广度优先和深度优先是什么?如何理解Python爬虫的广度优先

在python程序的开发过程之中,如果只是一直按部就班的按照固定的顺序去编写功能代码时,就会出现代码量大并且执行速度不快的情况 。那么正确的做法是使用算法来优化程序,而本篇文章要来讲解的是python爬虫以及数据处理上经常使用的广度优先和深度优先算法 。

Python广度优先和深度优先是什么?如何理解Python爬虫的广度优先

文章插图
首先这两个算法都属于搜索算法,意思就是它们都是为了找到某一个对象或者是节点而编写出来的 。
一、广度优先
广度优先算法最大的特点就是求取最短路线,因为当一个树形结构或者网状结构中有很多节点时,而你要找的节点又在这其中之一,那么广度优先算法就会将整个结构遍历一遍后得到起点到目标点的路径 。
而这个算法的实际执行过程就是从起点开始遍历,将下面的二级子节点都遍历一遍,然后从左至右的依次去遍历子节点下面的所有节点知道知道所需节点 。因为是一层层的全部搜素并且找到目标后就结束,所以当目标越靠近起点时执行速度就越快,这也是广度优先算法名称的由来 。
二、深度优先
那么深度优先就不同了,假设现在有一个根节点A,下面有三个子节点B、C、D 。而这三个节点下面又分别的有子节点以及它们的子节点,这样一层层构建出一个树形结构 。
而深度优先算法的执行过程很好理解,就是先从A开始然后搜索B里面的所有节点来寻找目标,没有找到的话就去右侧的另一个节点将其全部搜索直到找到目标节点为止 。因为是先将一个节点全部搜索完再去找另一个节点,所以是深度优先算法 。
【Python广度优先和深度优先是什么?如何理解Python爬虫的广度优先】以上就是关于“Python广度优先和深度优先是什么?如何理解Python爬虫的广度优先”的全部内容了,希望对你有所帮助 。

    推荐阅读