这种算法在Skiena的算法设计书中留给读者练习,据说它只是对Prim算法的修改(In his wiki reference练习6-11)。任何人都可以设计这样的算法吗?
答案 0 :(得分:7)
是的,问题应该是要求O(m + n log k)。显然,Omega(m)是一个下限,因为我们甚至不能在不检查它们的情况下找到最低权重的边缘。
对于记录,惯例是n表示顶点数,m表示边数。
享受我的书: - )
史蒂文斯基纳答案 1 :(得分:1)
具有简单优先级队列的Prim是O(m + n lg n),其中m是边数,n是顶点数。如果您使用相同的优先级(例如,使用链接列表)来填充条目,则会自动获得O(m + n lg k)。
AFAIK,此案件的最新技术是O(m),Fredman and Willard。