在python程序的开发过程之中,如果只是一直按部就班的按照固定的顺序去编写功能代码时,就会出现代码量大并且执行速度不快的情况 。那么正确的做法是使用算法来优化程序,而本篇文章要来讲解的是python爬虫以及数据处理上经常使用的广度优先和深度优先算法 。
文章插图
首先这两个算法都属于搜索算法,意思就是它们都是为了找到某一个对象或者是节点而编写出来的 。
一、广度优先
广度优先算法最大的特点就是求取最短路线,因为当一个树形结构或者网状结构中有很多节点时,而你要找的节点又在这其中之一,那么广度优先算法就会将整个结构遍历一遍后得到起点到目标点的路径 。
而这个算法的实际执行过程就是从起点开始遍历,将下面的二级子节点都遍历一遍,然后从左至右的依次去遍历子节点下面的所有节点知道知道所需节点 。因为是一层层的全部搜素并且找到目标后就结束,所以当目标越靠近起点时执行速度就越快,这也是广度优先算法名称的由来 。
二、深度优先
那么深度优先就不同了,假设现在有一个根节点A,下面有三个子节点B、C、D 。而这三个节点下面又分别的有子节点以及它们的子节点,这样一层层构建出一个树形结构 。
而深度优先算法的执行过程很好理解,就是先从A开始然后搜索B里面的所有节点来寻找目标,没有找到的话就去右侧的另一个节点将其全部搜索直到找到目标节点为止 。因为是先将一个节点全部搜索完再去找另一个节点,所以是深度优先算法 。
【Python广度优先和深度优先是什么?如何理解Python爬虫的广度优先】以上就是关于“Python广度优先和深度优先是什么?如何理解Python爬虫的广度优先”的全部内容了,希望对你有所帮助 。
推荐阅读
- python中的元类是如何工作的?如何创建python中的元类?
- 别人发的Python文件怎么打开?下载的Python文件如何运行
- python中有哪些常用的分词工具?python的常用分词基础了解
- 如何正确使用python中的输出函数?python中输出函数正确使用方式
- Python文件没有图标为什么?Python文件图标变成白色怎么办
- Python多线程爬虫如何实现?Python多线程爬虫用什么方法
- python如何对字符串进行切割?python切割字符串的方法是什么?
- Python中shutil模块的用法是什么?shutil模块有哪些常用方法
- python存储是什么文件类型?答案是根据你使用的函数来定义
- Python库无法安装怎么办?Python库为什么不能安装