Algorithm Prim';带Treaps的s算法
Prim的算法能否通过treaps实现以加快执行速度,因为正常堆在将顶点存储在堆中时会在更新关键点的值方面产生问题,否则需要O(V)空间来存储堆中顶点的位置?这不一定会使Prim的算法更快。考虑下面的退化情况-你有N个节点V1,V2,…,VN,它们的优先级是P(v1)<p(v2)<p(v3)<…p(vn)。在这种情况下,treap将是一个退化链表,如果您需要沿途更新优先级,只需在树中查找节点可能需要时间Ω(n)。带有额外查找表的标准二进制堆将比这更快Algorithm Prim';带Treaps的s算法,algorithm,data-structures,prims-algorithm,treap,Algorithm,Data Structures,Prims Algorithm,Treap,Prim的算法能否通过treaps实现以加快执行速度,因为正常堆在将顶点存储在堆中时会在更新关键点的值方面产生问题,否则需要O(V)空间来存储堆中顶点的位置?这不一定会使Prim的算法更快。考虑下面的退化情况-你有N个节点V1,V2,…,VN,它们的优先级是P(v1)<p(v2)<p(v3)
对负面结果表示抱歉,但我希望这能有所帮助 你能详细说明一下吗?treaps在这里有什么帮助?我将在treaps中保持顶点作为键,权重作为值。在treaps中,我们可以在O(高度)时间内搜索一个键,现在当需要更新连接顶点的最小长度路径时,这将帮助我节省空间,否则需要保留一个查找表来检查顶点在heapYeah中的存储位置。我同意你的看法!!但是我能期望在一个普通的情况下有更好的表现吗?就像在随机的BST中,随机的优先级分配给添加的新元素一样?@silentseeker,不,我不这么认为。这将为您提供一种查找每个节点的简单方法,但不是一种查找到目前为止成本最低的节点的简单方法。如果您想加速Prim的算法,您可能应该研究支持有效减少密钥的优先级队列,比如配对堆。这些在实践中相当快。