本帖最后由 胡晓思 于 2013-6-4 13:44 编辑
- //基于技术排序的原理,使用一个计数数组,数组脚标就是被排元素,数组元素是个数,按照要求取出数据,重新赋给被排数组就可以了 楼主觉得如何 不过此方法只能排不同整数比较小的 不过有点是性能较好,特别是重复较多的小整数排序
- import java.util.Arrays;
- public class temp {
- public static void main(String[] args) {
- int[] arr = { 6, 6, 5, 5, 1, 1, 2, 2, 2, 3, 3, 4, 4, 4 };
- sort(arr);
- System.out.println(Arrays.toString(arr));
- }
- public static void sort(int[] arr) {
- int[] num = new int[10];
- for (int i = 0; i < arr.length; i++) {
- num[arr[i]]++;
- }
- for (int a = 0; a < arr.length;) {
- for (int i = num.length - 1; i > 0; i--) {
- if (num[i] == getMax(num)) {
- for (int j = 0; j < getMax(num); j++) {
- arr[a++] = i;
- }
- num[i] = 0;
- break;
- }
-
- }
- }
- }
- public static int getMax(int[] arr) {
- int max = 0;
- for (int a : arr) {
- if (a > max)
- max = a;
- }
- return max;
- }
- }
复制代码 |