假设我们有一个数组,我们知道所有元素都是0 ... 2n并且没有排序。
如果我们使用具有O(n + k)复杂度的桶排序算法,其中k是元素的范围,在这种情况下是2n,那么将该数组排序的复杂度是Θ(n)吗? / p>
我的理由是运行时是O(n + 2n),它与O(3n)相同,并且因为3只是一个系数,复杂度就是Θ(n)。
这种分析是否准确?
答案 0 :(得分:2)
是的,您的分析是正确的。计算排序的运行时间是Θ(n + k),其中n是元素的数量,k是桶的数量。如果任何固定常数c的最大值为cn,那么计数排序的运行时间将为Θ(n),如您所述。
希望这有帮助!