要求:对公司的员工年龄进行排序,员工人数大约万名左右,可使用常量大小的辅助空间,要求时间效率为O(n)。
实现思路:使用一个额外的辅助数组用来记录同龄的员工数目。
实现如下:
public static void sort(int []ages){
int oldestAge=100;
int []timesOfAges=new int[oldestAge];
int len=ages.length;
for(int i=0;i<len;i++){
timesOfAges[ages[i]]++;;
}
//排序
int index=0;
for(int i=0;i<oldestAge;i++){
for(int j=0;j<timesOfAges[i];j++){
ages[index]=i;
index++;
}
}
}