如果使用插入排序对每个存储桶进行排序,那么存储桶排序O(n + k)的时间复杂度如何?

时间:2019-02-21 13:20:59

标签: algorithm sorting time-complexity big-o

由于插入排序的时间复杂度为O(n ^ 2),因此在每个存储桶使用插入排序时,存储桶排序O(n + k)的平均情况下的时间复杂度如何? 这里k是存储桶数。

1 个答案:

答案 0 :(得分:2)

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

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

尽管,存储桶排序依赖于在存储桶中均匀分布的元素。给定该假设,并给定与输入大小成比例的存储桶数量,则平均存储桶应包含 O(1)元素。换句话说,通过选择足够的存储桶,您可以将其尺寸保持较小。

这意味着在总体时间复杂度方面,存储桶排序可以忽略不计。然后选择插入排序成为明智的选择,因为它的开销较小且不需要额外的空间。