在最好情况下:与DFS类似,如果目标节点恰好是起始节点,BFS也只需要访问一个节点,时间复杂度为O(1)。 在最坏情况下:如果图是一个完全图(每个节点都与其他所有节点相连),或者目标节点在最远的一层,那么BFS需要访问所有节点,并且每个节点都需要被检查其邻居节点(在最坏情况下,每个节点都有V-1个邻居节点),但由于...
所以邻接表版的 dfs 遍历所有邻接点的时间复杂度为 O(e1 + e2 + e3 + ... + en) ,因为所有边数之和为 E , 所以时间复杂度为 O(E) , 又因为访问每个顶点都必须被访问一次, 比如设置vis[i] = true, 这个操作一共要执行 V 次,所以,设置所有顶点为已访问的时间复杂度为O(V), 所以总的时间为查找...
呵呵,居然一篇代码解决了DFS和BFS两个问题。 一般的深搜广搜的节点都是单一的一个字符,这里我就不说那种了,毕竟比较简单些。 这里要讲的是节点是字符串的深广搜。 在我写好这个用邻接表实现DFS时,运行结果纠结了我,运行结果是广搜的答案。 我郁闷了,明明照着DFS的思想,怎么写成了BFS了。于是我整理了一下思绪。