一 简介
排序(内部)可以从另一个方法分类,也就是比较类和非比较类。对于一个序列,1 65 3 6 22 其它的几种排序都会比较内部的比较。比如1 和65比较。
而基数排序空间换时间也就是对于 上面的序列 先比较个位 也就是 1 22 3 65 6 第二轮 就是 1 3 6 22 65.对于计算机思想就是准备10个数组存储当前位是0 1 2 3....的数组
二 代码的简单实现
package sort; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class JiShu { public static void main(String[] args) { int arr[] = {1, 52, 32, 10, 23,150,89,9}; jiShu(arr,3); System.out.println(Arrays.toString(arr)); } public static void jiShu(int []arr,int length) { List<Integer>[] list = new List[10]; for (int i = 0; i < list.length; i++) { list[i] = new ArrayList<>(); } int now = 0; while(now<length) { int number = (int)Math.pow(10, now); for (int i = 0; i < arr.length; i++) { int temp = arr[i] /number; temp = temp % 10; list[temp].add(arr[i]); } int temp = 0; for (int k = 0; k < list.length; k++) { if (list[k].size() != 0) { for (int j = 0; j < list[k].size(); j++) { arr[temp++] = list[k].get(j); } list[k].clear(); } } System.out.println("第"+(now+1)+"轮:"+Arrays.toString(arr)); now++; } } }