深度优先搜索和广度优先搜索

图的搜索算法

图的搜索算法是基于数据以图为存储结构的搜索算法,有很多。比如说,深度优先搜索算法和广度优先搜索算法,还有A*、IDA*等启发式搜索算法。

广度优先搜索(Breadth-First-Search)

简单来说就是地毯式搜索。专业一点,就是以一个顶点出发,以度为1遍历他连接的所有顶点。然后度依次增加,直到终止顶点。

以下图为例,

深度优先搜索和广度优先搜索_第1张图片

起始顶点为S,终止顶点为t,度从1开始依次增加到3,遍历到t。

我们定义E为变数,V为顶点数,时间复杂度为O(E),空间复杂度为O(V)

深度优先搜索算法(Depth-First-Search)

简称DFS,核心思想就是回溯思想

如下图所示,

深度优先搜索和广度优先搜索_第2张图片

时间复杂度是O(E),空间复杂度是O(V)。

 

总结

两种粗暴,简单的算法。

 

你可能感兴趣的:(数据结构与算法)