以下Prim算法实现的时间复杂度

时间:2017-07-12 16:22:03

标签: python time-complexity priority-queue adjacency-matrix prims-algorithm

以下代码的时间复杂度是多少?我正在实现prim的算法,其中包含图形和优先级队列的邻接矩阵表示。在我看来,时间复杂度是:当源连接到每个其他节点时,堆最多可以增长到(n-1)的大小,并且在内部循环中,邻接可以增加矩阵成本 O(n),因此总计:其 O((n-1)* n) - > O(n ^ 2),其中n是节点数。这个计算是否正确?因此,由于邻接矩阵,堆没有改善我的最坏情况运行时间?

printdata()

1 个答案:

答案 0 :(得分:1)

这取决于len(h)的作用,返回的值以及while的行为方式。当你发现这个时,你将它与来自hq.headpush的for和o(log n)中的o(n)相乘,你会得到你的复杂性 它类似O(x * nlog n),其中X是完成时间所需的步骤。