以下代码的时间复杂度是多少?我正在实现prim的算法,其中包含图形和优先级队列的邻接矩阵表示。在我看来,时间复杂度是:当源连接到每个其他节点时,堆最多可以增长到(n-1)的大小,并且在内部循环中,邻接可以增加矩阵成本 O(n),因此总计:其 O((n-1)* n) - > O(n ^ 2),其中n是节点数。这个计算是否正确?因此,由于邻接矩阵,堆没有改善我的最坏情况运行时间?
printdata()
答案 0 :(得分:1)
这取决于len(h)的作用,返回的值以及while的行为方式。当你发现这个时,你将它与来自hq.headpush的for和o(log n)中的o(n)相乘,你会得到你的复杂性 它类似O(x * nlog n),其中X是完成时间所需的步骤。