可能重复:
An array of length N can contain values 1,2,3 … N^2. Is it possible to sort in O(n) time?
鉴于n
范围内的[0,n^2 -1]
号码,我们如何在 O(n)运行时对它们进行排序?
我觉得解决方案涉及radix sort
,但我仍然遗漏了一些东西。
n
数字是整数。
有什么想法吗?
备注:不是作业!
此致
答案 0 :(得分:3)
我觉得你运气不好。 基数排序为O(k * n),其中k是位数。 在您的情况下,k = log(n ^ 2),导致O(n * log(n))。
答案 1 :(得分:3)
实际时间取决于您拥有的数据分布,但我会执行以下操作: