diff --git a/Program.cs b/Program.cs index de72062..9e3e3b3 100644 --- a/Program.cs +++ b/Program.cs @@ -9,11 +9,11 @@ void CountingSort(int[] inputArray) { - int[] counters = new int[10]; //массив повторений + int[] counters = new int[10]; //массив повторений изначально заполнен нулями. Длина соответствует значению максимального элемента исходного массива for (int i = 0; i < inputArray.Length; i++) { - counters[inputArray[i]]++; + counters[inputArray[i]]++; //в ячейку массива counters с индексом, соответствующим значению элемента исходного массива, добавляется единица, т.о. считается количество вхождений повторяющихся элементов // ourNumber = inputArray[i]; // counters[ourNumber]++; } @@ -21,23 +21,23 @@ void CountingSort(int[] inputArray) int index = 0; for (int i = 0; i < counters.Length; i++) { - for (int j = 0; j < counters[i]; j++) + for (int j = 0; j < counters[i]; j++) // внутренний цикл проходит по i-той ячейке массива counters столько раз, сколько указано в её значении { - inputArray[index] = i; - index++; + inputArray[index] = i; // ... и добавляет значение i в отсортированный масив нужное количество раз + index++; // сдвигаем индекс, чтобы двигаться по отсортированному массиву } } } -int[] CountingSortExtended(int[] inputArray) +int[] CountingSortExtended(int[] inputArray) // метод для сортировки массивов со значениями больше десяти, включая отрицательные { int max = inputArray.Max(); int min = inputArray.Min(); - int offset = -min; + int offset = -min; //сдвиг относительно нуля в отрицательную, либо положительную сторону int[] sortedArray = new int[inputArray.Length]; - int[] counters = new int[max + offset + 1]; + int[] counters = new int[max + offset + 1]; // +1, чтобы включить и первый и последний элемент диапазона