【问题标题】:Running time of Bucket sort桶排序的运行时间
【发布时间】:2015-11-18 11:59:12
【问题描述】:

如果我们假设元素均匀分布在给定的范围 k 中,我们有 10 个桶。然后在对列表中的 n 个元素进行一次迭代后,每个桶中的元素数量将相同。那么比如我们使用 quicksort 对每个桶进行排序,但是我们知道每个桶中的元素个数是恒定的,那么总运行时间不会是 Θ(n) 吗?

【问题讨论】:

  • 这是作业吗?你对这个问题有什么想法?
  • @reto 不,我正在准备算​​法入门考试,许多来源提供了关于运行时间的不同信息。
  • 如果你有10个桶,n个元素,每个桶的元素个数是n/10,不是常数。

标签: algorithm sorting quicksort bucket bucket-sort


【解决方案1】:

没有。

将元素放入 10 个桶中是 O(N)。

使用 qsort 对一个桶进行排序是 O(NlogN)(实际上是 N/10,但常数对复杂性无关紧要)。

所以总体复杂度将是 O(N + 10 * N logN),即 O(NlogN)(因为 N

如果这太难理解,试试这个方法:如果有 2 个桶而不是 10 个,那么你就是在对整个列表进行 Qsort。

【讨论】:

    猜你喜欢
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    相关资源
    最近更新 更多