
DFS算法是一一个递归算法,需要借助一个递归工作栈,故它的空间复杂度为O(N)O(N)O(N)。
遍历图的过程实质上是对每个顶点查找其邻接点的过程,其耗费的时间取决于所采用结构。
邻接表表示时,查找所有顶点的邻接点所需时间为O(E)O(E)O(E),访问顶点的邻接点所花时间为O(N)O(N)O(N),此时,总的时间复杂度为O(N+E)O(N+E)O(N+E)。
邻接矩阵表示时,查找每个顶点的邻接点所需时间为O(N)O(N)O(N),要查找整个矩阵,故总的时间度为O(N2)O(N^2)O(N2)。
本文详细介绍了DFS算法的空间复杂度为O(N),并分析了在不同数据结构下(邻接表和邻接矩阵)DFS算法的时间复杂度。对于邻接表表示的图,DFS的时间复杂度为O(N+E),而邻接矩阵表示的图则为O(N^2)。
9019

被折叠的 条评论
为什么被折叠?



