Advertisement

Python爬虫教程:广度优先搜索用于计算两点间的最短路径

阅读量:

本文重点阐述了如何运用Python实现广度优先搜索算法以获取两点之间的最短路径,具备一定的实践参考意义,有兴趣的读者可作为学习资料进行查阅。
引言

此前一直未能掌握相关知识,本周日花费整个下午的时间终于理解透彻,特此整理发布至博客中,便于日后查阅回顾。
目标是输入一张图结构、指定的起点与终点,最终输出从起点到终点的最短路径。

广度优先搜索算法

适用场景:适用于无权重的图结构。相较于深度优先搜索方法,深度优先搜索在内存占用方面较少但执行速度较慢;而广度优先搜索虽然占用更多内存,但运行效率更高。

复杂度分析:该算法的时间复杂度为O(V+E),其中V代表图中的顶点数量,E代表边的数量。

实现思路
广度优先搜索按照层级顺序进行遍历,在完成某一层所有节点的访问后才进入下一层;
例如如下图示:

在这里插入图片描述

从初始节点0出发进行搜索时,首先将节点0放入队列;
随后进入下一层,节点0能够到达的节点包括1、2、4,将这些节点依次加入队列;
接着处理节点1,该节点可以到达且尚未访问的节点为3;
因此,搜索顺序为0、1、2、4、3,其中每层搜索到的

全部评论 (0)

还没有任何评论哟~