Язык — Java
import java.util.Arrays;
public class Znanija {
public static void countingSort(int[] array) {
int min, max;
max = min = array[0];
for (int i = 1; i < array.length; i++) {
if (array[i] < min) {
min = array[i];
}
if (array[i] > max) {
max = array[i];
// создаем массив счетчиков
int[] count = new int[max - min + 1];
// считаем сколько раз встречается каждое число
for (int i = 0; i < array.length; i++) {
// берем нужный счетчик и добавляем к нему +1
count[array[i] - min]++;
int idx = 0;
// пробегаем по всем счетчикам
// count[i] - показывает сколько раз встречается то или иное число
for (int i = 0; i < count.length; i++) {
for (int j = 0; j < count[i]; j++) {
array[idx++] = i + min;
public static void main(String[] args) {
int []arr = {2, 0, 8, 1, 6, 8, 3, 7, 2, 6, 2, 1, 5, 2, 4};
System.out.println("Массив до сортировки:" + "\n" + Arrays.toString(arr));
countingSort(arr);//сортировка
System.out.println("\nМассив после сортировки:" + "\n" + Arrays.toString(arr));
Язык — Java
import java.util.Arrays;
public class Znanija {
public static void countingSort(int[] array) {
int min, max;
max = min = array[0];
for (int i = 1; i < array.length; i++) {
if (array[i] < min) {
min = array[i];
}
if (array[i] > max) {
max = array[i];
}
}
// создаем массив счетчиков
int[] count = new int[max - min + 1];
// считаем сколько раз встречается каждое число
for (int i = 0; i < array.length; i++) {
// берем нужный счетчик и добавляем к нему +1
count[array[i] - min]++;
}
int idx = 0;
// пробегаем по всем счетчикам
// count[i] - показывает сколько раз встречается то или иное число
for (int i = 0; i < count.length; i++) {
for (int j = 0; j < count[i]; j++) {
array[idx++] = i + min;
}
}
}
public static void main(String[] args) {
int []arr = {2, 0, 8, 1, 6, 8, 3, 7, 2, 6, 2, 1, 5, 2, 4};
System.out.println("Массив до сортировки:" + "\n" + Arrays.toString(arr));
countingSort(arr);//сортировка
System.out.println("\nМассив после сортировки:" + "\n" + Arrays.toString(arr));
}
}