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



Сортировка подсчетом позволяет отсортировать за линейное время последовательность, в которой каждый элемент - целое положительное число в известном диапазоне (не превосходящее заранее известного k).
В реализации визуализатора k равно десяти.

Идея алгоритма состоит в том, чтобы для каждого элемента x предварительно подсчитать, сколько элементов входной последовательности меньше x. После этого х записывается напрямую в выходной массив в соответствии с этим числом. Например, если семнадцать элементов входного массива меньше х, то в выходном массиве х должен быть записан на место с номером восемнадцать.

Используются следующие обозначения:
A[1..n] - входная последовательность;
C[1..k] - вспомогательный массив из k элементов;
B[1..n] - выходная отсортированная последовательность.

Работа алгоритма заключается в следующем.
В элемент C[i] заносится количество элементов массива A, равных i.
Затем находятся частичные суммы последовательности C[1], C[2], ..., C[k], каждая из которых является количеством элементов, не превосходящих i.
После этого каждый элемент A[i] из входного массива помещается в выходной массив B на позицию, равную значению элемента С[A[i]].

Авторы: В.А. Добровольский, А.В. Степук
Руководитель: А.А. Шалыто

Санкт-Петербургский государственный университет информационных технологий, механики и оптики.
Кафедра "Компьютерные технологии"

Исходные коды

Copyright 2004 by Vladimir Dobrovolski