首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >递归构建堆的空间复杂度

递归构建堆的空间复杂度
EN

Stack Overflow用户
提问于 2020-12-25 00:08:13
回答 1查看 127关注 0票数 0

我正在尝试解决Build-Heap递归形式的空间复杂性。这就是我到目前为止所做的,我想知道我的错误在哪里(如果有):

首先: Build-Heap是由for循环构成的,其时间复杂度为Theta(n)。

Build-Heap调用Heapify-Down Theta(n)次-(由于Build-Heap时间复杂性),所以: Heapify-Down在每次i-递归调用时将n\i个元素的数组推送到空间堆栈,这意味着它使用Theta(logn)的空间复杂度。

结论:θ(N)*Theta(Logn)= Theta(nlogn)。

我不确定我对Heapify-Down被调用的次数的解释,而且我在互联网上发现Build-Heap空间复杂度实际上是Theta(logn),这意味着我的结论是错误的。谢谢您的支持。

EN

回答 1

Stack Overflow用户

发布于 2020-12-25 15:08:15

当它是堆排序时,您的结论是绝对正确的,因为对BUILD-MAX-HEAP的调用需要O(n)时间,而对MAX-HEAPIFY的n-1次调用中的每一次都需要O(.So n)时间,总运行时间将是O(nlogn)。

您可以参考Cormen,Leiserson和Rivest的introduction to algorithms获得详细的解释

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65440697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档