В массиве могут встречаться только цифры от 0 до 9. Запишите массив подсчёта (только значения, через пробел) перед выводом ответа, если исходный неотсортированный массив равен , не знаю что делать

katuxa65789 katuxa65789    3   22.05.2021 12:11    8

Ответы
Vexicy Vexicy  21.06.2021 12:12

Язык — 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));

  }

}

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика