1——2:略
3. 使用单个位来表示颜色,单个位只能表示位0/1,因此颜色只有白和灰,黑色无法表示,因此删除第十八行对每个结点扫描结束后赋值为黑色的一行代码。
证明:直接一想就可以,代码第十三行,v.color==WHITE才会进行处理,灰色同样不处理,而算法最后之所以设置为黑色,是为了在研究算法的过程中给出一个更加形象的说明而已。
4. 如果换成邻接矩阵的话,BFS的时间复杂度将变为多少
如果换成邻接矩阵,在扫描队列中结点i的时候,必须将mat(i,-)这一行所有的结点都扫描1遍,复杂度为O(V),而扫描队列中每个结点,因此复杂度为O(V^2)。
5. 证明:在广度优先算法里,赋给结点u的u.d值与结点在邻接链表里出现的次序无关。使用下图为例子,证明:BFS所计算出来广度优先树可以因邻接链表中的次序不同而不同。

本文详细解析了算法导论第三版中22.2章节的广度优先搜索(BFS),包括删除节点颜色设置为黑色的代码、BFS在邻接矩阵中的时间复杂度、最短路径与树边的关系、寻找特定路径的算法等问题。内容涵盖BFS的性质、应用以及在不同图结构中的表现,并提供了求解树直径的有效算法和计算特定路径的O(V+E)时间复杂度方法。
最低0.47元/天 解锁文章
420

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



