【发布时间】:2021-04-03 01:06:03
【问题描述】:
我正在尝试解决 Build-Heap 递归形式的空间复杂性。 这是我到目前为止所做的,我想知道我的错误在哪里(如果有的话):
首先:Build-Heap是由for-loop构成的,它的时间复杂度是Theta(n)。
Build-Heap 调用 Heapify-Down Theta(n) 次-(由于 Build-Heap 时间复杂度),所以: Heapify-Down 每次 i-recursive-call 将 n\i 个元素的数组推送到空间堆栈,这意味着它使用 Theta(logn) 的空间复杂度。
结论:Theta(n)*Theta(logn) = Theta(nlogn)。
我不确定我对 Heapify-Down 被调用次数的解释,我还在互联网上发现 Build-Heap 空间复杂度实际上是 Theta(logn),这意味着我的结论是错误的。 先谢谢了。
【问题讨论】:
标签: recursion data-structures heap space-complexity