深度优先搜索

深度优先搜索

深度优先搜索和广度优先搜索一样,都是对图进行搜索的算法,目的也都是从起点开始搜索直到到达指定顶点(终点)。

 

算法步骤

深度优先搜索会沿着一条路径不断往下搜索直到不能再继续为止,然后再折返,开始搜索下一条候补路径。

 

 此处,候补顶点是用“后入先出”(LIFO)的方式来管理的 先入D再入C再入B

 

 搜索G的搜索顺序为 A->B->E->K->F->C->H->G

 

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

虽然广度优先搜索和深度优先搜索在搜索顺序上有很大的差异,但是在操作步骤上却只有一点不同,那就是选择哪一个候补顶点作为下一个顶点的基准不同。

广度优先搜索选择的是最早成为候补的顶点,因为顶点离起点越近就越早成为候补,所以会从离起点近的地方开始按顺序搜索;

而深度优先搜索选择的则是最新成为候补的顶点,所以会一路往下,沿着新发现的路径不断深入搜索。

 

参考: 我的第一本算法书 4-3 深度优先搜索

 

posted @ 2022-01-18 17:22  草木物语  阅读(578)  评论(0编辑  收藏  举报