是否有可用的排序算法,其时间复杂度为O(N)?

Kou*_*jee 2 sorting algorithm

大多数排序算法都具有O(N N)或O(N logN)的复杂度来实现结果.但是,对于特定的输入集合,存在具有O(N)复杂度的算法.我想知道是否有一种可用的排序算法,在所有情况下都具有O(N)的复杂度.

D'N*_*bre 5

如果你只能比较(检查两个项是<,>,==)正在排序的值,那么你不能做得比O(n log(n))更好.它是少数几种经过验证的算法下界之一.证明不是太复杂(详情请查看维基百科上的比较排序),但它足够长,不能在此重复.

如果你可以做比较以外的事情你有更多的灵活性.如果你有数字,你可以检查存储桶排序(一种基数排序),它可以进行O(n)排序.