【发布时间】:2014-02-10 17:25:16
【问题描述】:
在n-元素斐波那契堆上执行extract-min的实际最长时间是多少?
是O(D(n) + t(H)),其中D(n) = lg*n是n元素堆中节点的最大度数,t(H) = O(n)是堆H中的根数?
这是否意味着上述问题的答案实际上是O(n) = Theta(n)?如果不是,请纠正我的想法并回答。
【问题讨论】:
标签: algorithm time fibonacci-heap
在n-元素斐波那契堆上执行extract-min的实际最长时间是多少?
是O(D(n) + t(H)),其中D(n) = lg*n是n元素堆中节点的最大度数,t(H) = O(n)是堆H中的根数?
这是否意味着上述问题的答案实际上是O(n) = Theta(n)?如果不是,请纠正我的想法并回答。
【问题讨论】:
标签: algorithm time fibonacci-heap
您是对的——单个调用deleteMin 的最大时间复杂度是O(n)。对操作的下限O(logn) 是它的摊销时间复杂度,并且在最佳情况和最坏情况之间是相同的。
【讨论】:
O(n)。不能有更坏的情况吗? :)
deleteMin 的最坏情况是具有 n 根的堆,并且在 O(n) 时间处理。