门户型网站建设方案/怎么样建网站
计数排序(Counting Sort)
动图演示地址(https://www.cs.usfca.edu/~galles/visualization/CountingSort.html)
(动图里面多了一步累加和)
代码结构
源码
前置条件:父接口和测试类从上篇文章获取(https://blog.csdn.net/jt781861965/article/details/117051443)
package suanfa.paixu;public class CountSort implements Sort {public static void main(String[] args) {Test.test(new CountSort());}public void sort(int[] arr) {if (arr == null || arr.length < 2) {return;}int min = Integer.MAX_VALUE;int max = Integer.MIN_VALUE;for (int i = 0; i < arr.length; i++) {min = Math.min(min, arr[i]);max = Math.max(max, arr[i]);}int[] help = new int[max - min + 1];for (int i = 0; i < arr.length; i++) {help[arr[i] - min]++;}int index = 0;for (int i = 0; i < help.length; i++) {while (help[i]-- > 0) {arr[index++] = i + min;}}}
}