如何限制 Prim 算法中距离更新操作的总数?
How to bound the total number of distance update operations in Prim's algorithm?
在Prim-Jarnik中,在“云”(包含所有访问过的顶点)中添加一个新的顶点U之后,我们需要更新云与从U可达的所有顶点之间的距离。如何你找到这些更新操作的上限了吗?
我的课本上说是O(m),m是图中的边数。这导致整个 Prim-Jarnik 算法的复杂度为 O((m+n)logn)。
每次将顶点 U 添加到云中时,您只需要考虑以 U 为终点的所有边。因此,要将所有顶点添加到云中,每条边都会被考虑两次(每个端点一次) ).这给出了 2m 的界限,其中 m 是图中边的数量。
看this page。最后,它解释了为什么时间复杂度是 O((m+n)log n) [和 O(m log n) 如果图是完全连接的,其中 n = O(m)]。
在Prim-Jarnik中,在“云”(包含所有访问过的顶点)中添加一个新的顶点U之后,我们需要更新云与从U可达的所有顶点之间的距离。如何你找到这些更新操作的上限了吗?
我的课本上说是O(m),m是图中的边数。这导致整个 Prim-Jarnik 算法的复杂度为 O((m+n)logn)。
每次将顶点 U 添加到云中时,您只需要考虑以 U 为终点的所有边。因此,要将所有顶点添加到云中,每条边都会被考虑两次(每个端点一次) ).这给出了 2m 的界限,其中 m 是图中边的数量。
看this page。最后,它解释了为什么时间复杂度是 O((m+n)log n) [和 O(m log n) 如果图是完全连接的,其中 n = O(m)]。