基数排序(java实现)
基数排序 就是先比较数组中元素的个位数,排序得到新的数组,然后比较新的数组中的十位数,排序得到新数组,然后再对最新得到的数组比较百位数.......依次循环
比如{82 ,31 ,29 ,71, 72, 42, 64, 5,110} 比较个位数 排序 得到新数列{110,31,71,82,72,42,64,5,29} 然后对新数列比较十位数{110,29,31,42,64,71,72,82} 然后比较百位数,没有百位数的算作0,所以得到{29,31,42,64,71,72,82,110}
代码如下:
//基数排序 arrays是需要排序的数组 List<Integer> list = new ArrayList<>();//辅助存储 int sortTimes = 0; boolean flag = true; while(flag){ flag = false; for(int i = 0;i<=9;i++){ for(int index = 0; index<arrays.length; index++){ if(getNumber(arrays[index],sortTimes) == i){ list.add(arrays[index]); } if(arrays[index]/(int) Math.pow(10,index+1)!=0){ flag = true; } } } for(int i = 0; i<list.size();i++){ arrays[i] = list.get(i); } list.clear(); sortTimes++; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。