年龄排序
要求:对公司的员工年龄进行排序,可以使用辅助数组,但是不能超过O(n)。
思路:
因为年龄是有大小限制的,所以我们可以创建一个大小为150的数组,里面存储每个年龄的员工数目。最后哪个年龄有几个人,直接添加到原始数组中就相当于排序了。
import java.util.Arrays;
public class AgeSort {
public static void main(String[] args) {
int[] arr = {11, 22, 11, 12, 5, 123 , 45, 64};
ageSort(arr);
System.out.println(Arrays.toString(arr));
}
public static void ageSort(int[] arr) {
int[] ageCount = new int[150];
for(int i = 0; i < arr.length; i++) {
ageCount[arr[i]]++;
}
int index = 0;
for(int i = 0; i < ageCount.length; i++) {
if(ageCount[i] != 0) {
while(ageCount[i] != 0){
arr[index++] = i;
ageCount[i]--;
}
}
}
}
}