桶排序的复杂性与已知的上限?

时间:2013-10-26 17:14:52

标签: arrays algorithm sorting big-o big-theta

假设我们有一个数组,我们知道所有元素都是0 ... 2n并且没有排序。

如果我们使用具有O(n + k)复杂度的桶排序算法,其中k是元素的范围,在这种情况下是2n,那么将该数组排序的复杂度是Θ(n)吗? / p>

我的理由是运行时是O(n + 2n),它与O(3n)相同,并且因为3只是一个系数,复杂度就是Θ(n)。

这种分析是否准确?

1 个答案:

答案 0 :(得分:2)

是的,您的分析是正确的。计算排序的运行时间是Θ(n + k),其中n是元素的数量,k是桶的数量。如果任何固定常数c的最大值为cn,那么计数排序的运行时间将为Θ(n),如您所述。

希望这有帮助!