排序员工年龄

代码

import java.util.*;
public class My {
/**
面试题11前面一道
*/
static class SoftAge {
    private int[] ages;//员工年龄
    private final int oldestAge=99;//最大年龄
    private int[] timesOfAge = new int[oldestAge+1];//每个年龄出现次数
    public  SoftAge(int[] ages) {
        this.ages=ages;
    }
    public void soft(){
        for(int i=0;i<ages.length;i++){
            int age=ages[i];
            if(age<0 || age>99)
                throw new RuntimeException("age不合法");
            timesOfAge[age]++;
        }
        int index =0;//员工总数索引
        for(int i=0;i<oldestAge;i++){
            for(int j=0;j<timesOfAge[i];j++){//年龄重复出现几次,就设置几次该年龄
                ages[index]=i;
                index++;
            }
        }
    }
    public void print(){
        for(int i=0;i<ages.length;i++){
            System.out.println(ages[i]);
        }
    }
}
public static void main(String[] args) {
    int[] ages = {1,2,3,6,4,7,5,4,3,5,2,8,9,7,77,55};
    SoftAge ins = new SoftAge(ages);
    ins.soft();
    ins.print();
}
}