标签:
现在有一个数组A,这个数组有size个元素,元素的范围为0~MAX。要求对这size个数据进行排序。
建立一个大小为MAX+1的数组B,每一个元素都为0。从头开始遍历A,当遍历到A[i]的时候,令B[A[i]]的值加1;
当把A整个扫面结束之后,输出B就得到了最后的排序结果。
面试官:请实现一个排序算法,要求时间复杂度为O(n)。
评聘者:对什么数字进行排序啊,有多少个数字?
面试官:想对公司所有员工的年龄排序,我们公司总共有几万名员工吧。
应聘者:也就是说数字的大小在一个较小的范围内,对吧?
面试官:是的。
应聘者:可以使用辅助空间吗?
面试官:只允许使用常量大小的辅助空间,不能找过O(n)。
标签:
原文地址:http://www.cnblogs.com/stemon/p/4640747.html