如何确定存储桶排序的平均和最坏情况空间复杂度

时间:2019-04-09 14:10:25

标签: algorithm sorting space-complexity bucket-sort

有人可以告诉我们如何找到Bucket排序的平均和最差情况的SPACE复杂度吗?

1 个答案:

答案 0 :(得分:0)

首先,我们需要了解存储桶排序的工作原理:

  1. 创建一个空数组
  2. 遍历原始数组并将每个对象放入存储桶
  3. 对每个非空桶进行排序
  4. 依次检查存储桶,然后将所有对象放回原始数组。

这使存储桶排序成为需要排序的大型列表的绝佳算法。平均时间复杂度为O(n + k),其中n是您的存储桶数。最差的时间复杂度是Θ(n ^ 2)。这样做的原因是,当输入在一个范围内均匀分布时,存储桶排序非常有用,因为每当有彼此靠近的键时,它们可能最终会出现在同一个存储桶中,否则我们需要为每个键输入一个存储桶原始数组。

最坏情况下的空间复杂度是O(nk)。 空间复杂度是算法所需的工作存储量的度量。这意味着在最坏的情况下,算法中的任何时候都需要多少内存。至于时间的复杂性,我们主要关注的是随着输入问题的大小N的增长,空间需求的增长(大哦)。

希望对您有所帮助!