【问题标题】:Modified version of Prim's algorithm with O(kn + m) time complexityPrim 算法的修改版本,具有 O(kn + m) 时间复杂度
【发布时间】:2015-09-15 09:27:22
【问题描述】:

你能帮我解决这个问题吗?

给定一个无向图 G,连接,带有加权边,使得权重是 [1,k] 中的整数。编写 Prim 算法的修改版本,在 O(kn+m) 时间内返回最小生成树。

注意:

  • n 表示顶点数
  • m 表示边数

【问题讨论】:

    标签: algorithm graph time-complexity computer-science


    【解决方案1】:

    您应该使用有限的边长范围。这将帮助您更有效地保持边缘的优先级队列。请记住,算法中最重要的一步是找到将迄今为止构建的树与尚未添加到树中的节点连接起来的最小权重边。尝试使用counting sort 作为灵感。

    【讨论】:

    • 感谢您的回答,我的第一次尝试是使用具有 O(n+k) 时间复杂度的桶排序对边进行排序。正如您所建议的那样,这应该可以提高这种情况下优先级队列的性能。如果我没有犯任何错误,O(kn+m) 由 deleteMin 函数给出,可以在 O(k) 时间内执行,而不是 O(logn) 。对吗?
    猜你喜欢
    • 2010-10-17
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多