从n [0..k]获取整数值的n大小数组的就地和O(n)时间排序

时间:2015-01-14 09:08:01

标签: arrays sorting big-o time-complexity

是否有一个算法可以对n大小的数组进行排序和O(n)时间,该数组采用范围为[0..k]

的整数值

1 个答案:

答案 0 :(得分:0)

是的,有!考虑使用most-significant digit radix sort,有时称为二进制快速排序。这个算法就地工作,虽然它需要O(log n)辅助空间用于递归栈(我不知道这是否是你最终的交易破坏者)。用于排序最大值为U的n个数字列表的运行时为O(n log U),在您的情况下,因为k是固定常量,运行时为O(n)。