Prim的算法可以通过treaps来实现,以加快执行速度,因为正常的堆会在更新键的值时造成问题,同时将顶点存储在堆中,否则需要O(V)空间来存储位置堆中的顶点?
答案 0 :(得分:1)
这不一定会使Prim的算法更快。考虑以下退化情况 - 您有n个节点v1,v2,...,vn,并且它们的优先级是p(v1)< p(v2)< p(v3)< ......< P(VN)。在这种情况下,treap将是一个退化链表,如果您需要更新优先级,只需查找树中的节点可能需要时间Ω(n)。带有额外查找表的标准二进制堆会比这更快。
对于否定的结果感到抱歉,但我希望这有帮助!