gpt4 book ai didi

algorithm - 堆排序的时间复杂度

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:26 24 4
gpt4 key购买 nike

<分区>

我到处都读到堆排序的时间复杂度在最坏的情况下是O(nlog(n))。但我们也到处都读到,认为堆是在 O(nlog(n)) 中构建的是一种常见的误解。相反,您可以在 O(n) 中创建一个堆。所以考虑到一个堆可以在O(n)中做出来,看看下面的排序算法,告诉我在分析它的时间复杂度时我错在哪里。

  1. n个元素放入堆中(时间:O(n))
  2. 直到堆为空,弹出每个元素并将其复制到一个数组中。 (时间:O(n)。为什么?因为以同样的方式,所有元素都可以在 O(n) 中放入堆中,也可以提取所有元素在 O(n) 中。对吧?)。

总而言之,复杂度是 O(n)+O(n)O(n)。但是在这里,我们还需要额外的O(n)内存。

我知道传统堆排序的时间复杂度为O(nlog(n)),内存复杂度为O(1)。但这不也是堆排序吗?与传统的堆排序算法不同,即使在最坏的情况下,它也能提供 O(n)

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com