看到这个排序,作者说是简易的,就当简易的看吧:
嗯,一组数字进行排序,先初始化长度为,数组长度中最大元素的数字+1,比如1、2、3、4、5,就是要初始化0、1、2、3、4、5号桶,然后遍历数组,把数组中的元素如果出现过,就把我们初始化的数组所在ID的value设置为+1。最后,一个遍历就很清楚了,
看看图:
简单实现代码:
public static void main(String[] args) {
int[] arrayNum={3,5,1,8,9,10,45,23,3};
getNum(arrayNum);
}
public static void getNum(int[] ay){
int[] myLength=new int[47];
for(int i=0;i<myLength.length;i++){
for(int j=0;j<ay.length;j++){
if(i==ay[j]){
myLength[i]+=1;
}
}
}
for(int g=0;g<myLength.length;g++){
System.out.println(g+"<><><>"+myLength[g]);
}
}
缺点就是,如果要排序的数组中的数字过大,那么要初始化的数组长度将会很大的...
嗯,请看下节:冒泡