首页 > 代码库 > 算法导论第八章__实现计数排序
算法导论第八章__实现计数排序
计数排序:不须要比較就能得出排序的顺序__比如。本章的计数排序、基数排序、桶排序
比較排序:须要进行比較才干得出排序的顺序__比如,本章的堆排序、高速排序(本质是插入排序)、插入排序
代码清单:计数排序__完美演绎下标的作用
public class Count_Sort { //接收须要排序的数组 private int[] A; //排序后的数组 private int[] B; //用于计数的数组 private int[] C; // 初始化 public Count_Sort(int[] A) { this.A = A; B = new int[A.length]; C = new int[innitTemp()]; } // 初始化暂时数组的大小 public int innitTemp() { int bigest = A[0]; for (int i = 1; i < A.length; i++) { if (A[i] > bigest) { bigest = A[i]; } } return bigest+1; } // 计数排序 public void sort() { // 把i中相应的元素映射到C中 for (int i = 0; i < A.length; i++) { int value = http://www.mamicode.com/A[i];>C[value] -= 1; } show(B); } public void show(int[] X) { for (int i = 0; i < X.length; i++) { int j = X[i]; System.out.print(j + " "); } System.out.println(); System.out.println("--------------------------------------------------------------"); } public static void main(String[] args) { int []A={1,2,3,3,2,1,1,5,1,3,4,5}; Count_Sort sort=new Count_Sort(A); sort.sort(); } }
输出的结果:
0 4 2 3 1 2
--------------------------------------------------------------
0 4 6 9 10 12
--------------------------------------------------------------
1 1 1 1 2 2 3 3 3 4 5 5
--------------------------------------------------------------
算法导论第八章__实现计数排序