我有以下问题(我认为这是众所周知的/标准的),我正在思考:我在考虑在中遍历大的最小堆,维护一个最小堆而不是简单的队列。在辅助min-heap上执行k次提取-min之后,算法停止。辅助min-heap的大小为O(k) (对于提取的每个min-key,我插入其子项,最大值为2)。问题是extract-min的复杂度为O(log ),因此该算法的复杂度为O( k )。我必须在O(k)中找到一个。谢谢!
你能让Prim的算法运行多快?如果边权值是从1到W的整数,对于一些常数W呢?1. for each u∈ G.V根据我的教科书:
Prim算法的运行时间取决于我们如何实现最小优先级队列Q。如果我们将q实现为二进制最小堆,我们可以使用构建最小堆过程在O(V)时间内执行第1-5行。第11行中的赋值涉及到对最小堆的隐式减少键操作,二进制的min-堆在O(lg V)时间内支持该操作。因此,Prim算法的总时间为O(V lg V