【发布时间】:2019-02-21 13:20:59
【问题描述】:
由于插入排序的时间复杂度为 O(n^2),桶排序的平均时间复杂度为 O(n+k),因为它在每个桶上使用插入排序? 这里k是桶的数量。
【问题讨论】:
标签: algorithm sorting time-complexity big-o
由于插入排序的时间复杂度为 O(n^2),桶排序的平均时间复杂度为 O(n+k),因为它在每个桶上使用插入排序? 这里k是桶的数量。
【问题讨论】:
标签: algorithm sorting time-complexity big-o
您可以查看平均时间复杂度的detailed calculations。虽然,这是一种直觉。
首先,在最坏的情况下,桶排序是O(n^2)。每当所有元素最终都在同一个存储桶中时,就会发生这种情况。
虽然,桶排序依赖于元素均匀分布在桶中。给定这个假设,并且给定与输入大小成正比的桶数,那么平均桶应该包含 O(1) 个元素。换句话说,通过选择足够多的桶,您可以保持它们的大小。
这意味着桶的排序对整体时间复杂度没有影响。选择插入排序则成为一个明智的选择,因为它的开销较小并且不需要额外的空间。
【讨论】: