Изменения

Перейти к: навигация, поиск

Сортировка подсчётом

243 байта добавлено, 14:50, 12 июня 2012
Сортировка целых чисел
'''Сортировка подсчётом''' {{---}} алгоритм сортировки целых чисел в диапазоне от <tex>0</tex> до некоторой константы <tex>k</tex> или сложных объектов, работающий за линейное время.
== Сортировка целых чисел ==
<!-- Сделать нормальное описание -->Это простейший вариант алгоритма. Создать вспомогательный массив === Описание ===Исходная последовательность чисел длины <tex>C[0..k - 1]n</tex>, состоящий из нулейа в конце отсортированная, затем последовательно прочитать элементы входного массива хранится в массиве <tex>A</tex> и для каждого <tex>A[i]</tex> увеличить . Также используется вспомогательный массив <tex>C[A[i]]</tex> на единицу. Теперь достаточно пройти по массиву с индексами от <tex>C0</tex> и для каждого до <tex>number \in \{0, ..., k - 1\}</tex> в массив <tex>A</tex> последовательно записать число <tex>number\</tex> <tex> C[number]</tex> раз, изначально заполняемый нулями.
Последовательно пройдём по массиву <tex>A</tex> и запишем в <tex>C[i]</tex> количество чисел, равных <tex>i</tex>.
 
Теперь достаточно пройти по массиву <tex>C</tex> и для каждого <tex>number \in \{0, ..., k - 1\}</tex> в массив <tex>A</tex> последовательно записать число <tex>number\</tex> <tex> C[number]</tex> раз.
 
=== Псевдокод ===
<code>
SimpleCountingSort
for number = 0 to k - 1
A[pos] = number;
pos = pos + 1;
</code>
== Сортировка сложных объектов ==
277
правок

Навигация