长度为N的数组可以包含值1,2,3 ... N ^ 2.是否有可能在O(n)时间内排序?

rid*_*hap 6 sorting algorithm radix-sort

给定一个长度为N的数组.它可以包含范围从1到N ^ 2(N平方)的值,包括值,值是整数.是否可以在O(N)时间内对此数组进行排序?如果可能怎么样?

编辑:这不是作业.

ybu*_*ill 9

在基数N中写入每个整数,即每个x可以表示为(x1,x2),其中x = 1 + x1 + x2*N. 现在,您可以使用计数排序对其进行两次排序,一次在x1上,一次在x2上,从而生成排序数组.

  • -1因为我认为这个答案明显不如@svick的回答清楚. (2认同)

svi*_*ick 8

是的,你可以使用基数排序ñ水桶和两个通道.基本上,您将数字视为基数为N的 2位数.