计数和基数排序的运行时间

时间:2013-02-26 22:28:49

标签: sorting time radix-sort

我知道计数和基数排序通常被认为是在O(n)时间运行,我相信我理解为什么。然而,我在一项任务中被要求解释为什么这些类型可能不一定在O(n)时间内排列不同的正整数列表。我无法提出任何理由。

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

要说计数或基数排序是O(n)实际上是不正确的。

Counting sort是O(n + k),其中k是数组中任何元素的最大值。

原因是您必须单步执行整个列表以填充计数(O(n)),然后逐步计算计数(O(k))。

Radix sort是O(mn),其中m是数字的最大位数。

原因是您必须为每个数字(O(n)m次)单步执行一次数组。