基数排序
来源:互联网 发布:佛道 知乎 编辑:程序博客网 时间:2024/05/20 22:39
首先根据个位数的数值,在走访数值时将它们分配至编号0到9的桶子中:接下来将这些桶子中的数值重新串接起来,成为新的的数列:,接着再进行一次分配,这次是根据十位数来分配:则一直持续进行以上的动作直至最高位数为止。
public static void radixSort(int[] array) {
int index=0;
for(int i=0;i<array.length;i++){
int length=String.valueOf(array[i]).length();
if(length>index){
index=length;
}
}
System.out.println(index);
//也可通过先找到最大值,最后转成string获取长度的方法
/*List<Integer> list=new ArrayList<Integer>();
List<Integer> list2=new ArrayList<Integer>();*/
List<ArrayList<Integer>> list=new ArrayList<ArrayList<Integer>>();
for(int i=0;i<10;i++){
list.add(new ArrayList<Integer>());
}
//按照各个位数进行排序
for(int i = 0;i < index;i++){
for(int m=0;m<array.length;m++){
int a=array[m]/pow(i);
int b = a % 10;
list.get(b).add(array[m]);
}
System.out.println(list);
// 排序
int n=0;
for(ArrayList<Integer> arrayList : list){
if(arrayList.size() != 0){
for(Integer inner : arrayList){
array[n]=inner.intValue();
n++;
}
arrayList.clear();
}
}
System.out.println("--------"+Arrays.toString(array));
}
System.out.println(Arrays.toString(array));
}
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- mysql事务隔离性(mysql transaction isolation level)
- 一个用在手机上的简单js拖拽效果
- 机测,新一代的三角
- 多个数组求交集 js
- AndroidStudio导入项目一直Building解决方案
- 基数排序
- ListView的使用技巧
- Understanding C/C++ Strict Aliasing
- play framework 2.5.3 学习和使用过程中的“坑”
- 搜索技巧
- C程序在内存中的分区情况
- html5web通信-跨文档消息传输
- ListView 底部分割线如何显示
- JSP内置对象