403
правки
Изменения
→Алгоритм
== Алгоритм ==
[[Файл:Цифровая_сортировка.png|thumb|right|450px|Пример цифровой сортировки трехзначных чисел]]
Примерами объектов, которые удобно разбивать на разряды и сортировать по ним, являются числа и строки.
*Для чисел уже существует понятие разряда, поэтому разбивать будем именно по нимпредставлять числа как последовательности разрядов. Конечно, в разных системах счисления разряды одного и того же числа отличаются, поэтому перед тем как разбивать число, сортировкой представим его числа в удобной для нас системе счисления.
*Так как строки Строки представляют из себя массивы последовательности символов, то поэтому в качестве разряда можно брать разрядов в данном случае выступают отдельные символы, сравнение которых обычно происходит по соответствующим им кодам из [[Представление символов, таблицы кодировок#Таблицы кодировок|таблицы кодировок]]. Для такого разбиения самый младший разряд {{---}} последний символ строки.
Для вышеперечисленных объектов наиболее часто в качестве устойчивой сортировки применяют [[сортировка подсчетом|сортировку подсчетом]].
<b> База</b>: <tex> n = 1 </tex>. Очевидно, что алгоритм работает верно, потому что в таком случае мы просто сортируем младшие разряды какой-то заранее выбранной устойчивой сортировкой.
<b> Переход</b>: Пусть для <tex> n = k </tex> алгоритм правильно отсортировал элементы последовательности по <tex> k </tex> младшим разрядам. Покажем, что в таком случае, при сортировке по <tex> (k + 1) </tex>-му разряду, объекты последовательности также будут отсортированы в правильном порядке.
Вспомогательная сортировка разобьет все объекты на группы, в которых <tex> (k + 1) </tex>-й разряд объектов одинаковый. Рассмотрим такие группы. Для сортировки по отдельным разрядам мы используем устойчивую сортировку, следовательно порядок объектов с одинаковым <tex> (k + 1) </tex>-м разрядом не изменился. Но по предположению индукции по предыдущим <tex> k </tex> разрядам объекты последовательности были отсортированы правильно, и поэтому в каждой такой группе объекты они будут отсортированы верно. Также верно, что сами группы находятся в правильном относительно друг друга порядке, а, следовательно, и все элементы объекты отсортированы правильно по <tex> (k + 1) </tex>-м младшим разрядам.
== Псевдокод ==