【问题标题】:How is the time complexity of Bucket Sort O(n+k) if it uses insertion sort to sort each bucket?如果使用插入排序对每个桶进行排序,桶排序 O(n+k) 的时间复杂度如何?
【发布时间】:2019-02-21 13:20:59
【问题描述】:

由于插入排序的时间复杂度为 O(n^2),桶排序的平均时间复杂度为 O(n+k),因为它在每个桶上使用插入排序? 这里k是桶的数量。

【问题讨论】:

标签: algorithm sorting time-complexity big-o


【解决方案1】:

您可以查看平均时间复杂度的detailed calculations。虽然,这是一种直觉。

首先,在最坏的情况下,桶排序是O(n^2)。每当所有元素最终都在同一个存储桶中时,就会发生这种情况。

虽然,桶排序依赖于元素均匀分布在桶中。给定这个假设,并且给定与输入大小成正比的桶数,那么平均桶应该包含 O(1) 个元素。换句话说,通过选择足够多的桶,您可以保持它们的大小。

这意味着桶的排序对整体时间复杂度没有影响。选择插入排序则成为一个明智的选择,因为它的开销较小并且不需要额外的空间。

【讨论】:

  • 很好的解释。
猜你喜欢
  • 2011-11-10
  • 1970-01-01
  • 1970-01-01
  • 2019-12-10
  • 2021-07-08
  • 2021-11-04
  • 2021-08-13
  • 2011-09-01
  • 1970-01-01
相关资源
最近更新 更多