联合搜索和广度优先搜索的优点和缺点是什么



联合查找和广度优先搜索的优点和缺点是什么?示例:理论算法的复杂性、应用程序的差异等等

我假设这是两个独立的问题。

联合查找

理论算法复杂性

当使用路径压缩时,联合查找的复杂性为O(logn(,如果不使用,则为O(n(。这方面的严格证据可能比你想要的要多,但它们可以在互联网上找到。

应用程序

在Kruskal的算法中使用联合查找来查找最小生成树。联合查找算法用于跟踪通过Kruskal的中间步骤形成的不相交的最小生成树(等价类(。这是我唯一一次遇到算法。其他应用程序可以在互联网上找到,例如以下。

https://en.wikipedia.org/wiki/Disjoint-set_data_structure#Applications

广度优先搜索

理论算法复杂性

BFS的时间复杂度是O(V+E(,其中V是顶点的数量,E是边的数量。对于完全图,时间复杂度可以认为是O(V^2(。对于稀疏图,时间复杂度可以认为是O(V(。时间复杂性来自于这样一个事实,即在无向图中,每个顶点只被探索一次,每个边在最坏的情况下被探索两次(或在有向图中探索一次(。

应用程序

我在一些地方遇到了BFS,比如找到未加权图的最小生成树,找到到未加权图中节点的最短路径(BFS不适用于最短路径不等于它们之间最小边数的加权图(。BFS的另一个用途是树的级别顺序遍历。更多的应用示例可以在这里找到:

https://www.geeksforgeeks.org/applications-of-breadth-first-traversal/

最新更新