package 十大排序
;
public class 计数排序
{
public static void main(String
[] args
) {
int[] arr
={10,9,11,8,7,13,2,1,12,0,0};
sort(arr
);
for (int i
= 0; i
<arr
.length
; i
++) {
System
.out
.print(arr
[i
]);
System
.out
.print(" ");
}
}
private static void sort(int[] A
) {
int[] helper
= maxOf(A
);
for (int i
= 0; i
< A
.length
; i
++) {
helper
[A
[i
]]++;
}
int k
= 0;
for (int i
= 0; i
< helper
.length
; i
++) {
while (helper
[i
] > 0) {
A
[k
++] = i
;
helper
[i
]--;
}
}
}
private static int[] maxOf(int[] A
) {
int max
= -1;
for (int i
= 0; i
< A
.length
; i
++) {
if (A
[i
] > max
) {
max
= A
[i
];
}
}
return new int[max
+ 1];
}
}
转载请注明原文地址: https://lol.8miu.com/read-6412.html