Изменения

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

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

214 байт добавлено, 04:30, 7 июня 2011
Устойчивый алгоритм
== Устойчивый алгоритм ==
В этом варианте помимо входного массива <tex>A</tex> потребуется два вспомогательных массива — <tex>C[0..k - 1]</tex> для счётчика и <tex>B[0..n - 1]</tex> для отсортированного массива. Сначала следует заполнить массив <tex>C</tex> нулями, и для каждого <tex>A[i]</tex> увеличить <tex>C[A[i]]</tex> на 1. Далее подсчитывается число элементов меньше или равных текущему. Для этого каждый <tex>C[j]</tex>, начиная с <tex>C[1]</tex>, увеличивают на <tex>C[j - 1]</tex>. На последнем шаге алгоритма читается входной массив с конца, значение <tex>C[A[i]]</tex> уменьшается на 1 и в каждый <tex>B[C[A[i]]]</tex> записывается <tex>A[i]</tex>. Алгоритм устойчив. Устойчивость может потребоваться при [[Сортировка_подсчетом_сложных_объектов|сортировке сложных структур данных]].
<code>
StableCountingSort
Анонимный участник

Навигация