标签: algorithm sorting
我正在寻找一种非比较或基于比较的算法,该算法可以对包含前n个正整数的任何排列的数组进行排序,这应该是O(n)时间复杂度和O(1)空间复杂度。
是否存在符合这些规范的现有算法?
答案 0 :(得分:11)
如果你有一个大小为N的数组,其中存在从1到N的所有整数,你可以使用下面的O(N)算法(注意:为了这个伪代码,数组是1,以免引入不必要的复杂性在解释算法时):
答案 1 :(得分:2)
In-place MSD radix sort
答案 2 :(得分:1)
如果您确定所有整数都在1到N之间,则可以使用counting sort