用于邻接列表表示的 Prim 的 MST

Prim’s MST for Adjacency List Representation

我正在尝试使用最小堆实现 Prim 的算法。 这是我指的 link https://www.geeksforgeeks.org/prims-mst-for-adjacency-list-representation-greedy-algo-6/

我想知道为什么我们可以使用向量并使用 std::sort 函数代替最小堆对其进行排序。

你可以,但请记住,每次将新节点添加到 MST 时,你都必须更新跨分区的边集(到尚未在 MST 中的节点的边),因此你将拥有在算法的每次迭代中对向量进行排序,这会浪费时间,因为您只需要知道穿过分区的哪些边在该迭代中具有最小值,最小堆自其时间以来对于该操作是最佳的提取最小值的复杂度为 O(log n),而排序为 O(n log n),这会使算法在大图或密集图上变慢 运行。