基数排序(只适合整数)
【基数排序(只适合整数)】通常比较大小,我们直接就找到最大的位数的数。假设所有的数的位数都相同,根据对10的幂去模,从而保存进不同的集合;随着10的次幂的不断增大,数组排序完成了。
/**
*基数排序:
*核心思想:
*1.首先获取最大的绝对值的数
*2.求出最大的绝对值的数,是10的times次幂。
*3.建立19个集合,分别保存个位是(-9,-8,-7,……,1,2,3,……8,9)的数
*4. 根据times次幂建立外层循环for(int i=0;
;
)
*a. 获取对应的位的值
*b. 把每个数添加进相应的集合
*5.收集数据
* @param array
*/
public void basicSort(int [] array) {
if(array == null && array.length ==0) {
return ;
}
int max =0;
//1获取最大的绝对值的数
for(int i =0;
i0) {
max = max/10;
times ++;
}
List queue = new ArrayList();
//3建立19集合,分别保存个位是(-9,-8,-7,……,1,2,3,……8,9)的数
for(int i =0;
i<20;
i++) {
ArrayList q = new ArrayList();
queue.add(q);
}
//4根据位数循环
for(int i =0 ;
i0) {
ArrayList q = queue.get(j);
array[count] = q.get(0);
q.remove(0);
count++;
}
}
}
}
推荐阅读
- 午门传说
- 低头思故乡——只是因为睡不着
- 2018-09-03(李克富视角点评训练营81/90)|2018-09-03(李克富视角点评训练营81/90) 那只蛙从“井”爬出来又进入了“隧道”
- 早知道你是只飞鸟,我就应该把你关起来
- 一个选择排序算法
- 杀死一只知更鸟
- 只要有一台手机,人人都可以是摄影师
- 穷得只剩下一个人
- 全职妈妈在4岁孩子眼中只是一个loser
- 只有经历了才真正懂得的伤痛