Radix Sort
Radix Sort — поразрядная сортировка целых чисел: сортирует по разрядам от младшего к старшему.
Основная идея
На каждом шаге используем стабильную сортировку (counting sort) по очередному разряду. После прохода по всем разрядам массив отсортирован.
Пошаговый пример
Исходный массив:
[170, 45, 75, 90, 802, 24, 2, 66]
- Сортируем по единицам → [170, 90, 802, 2, 24, 45, 75, 66]
- Сортируем по десяткам → [802, 2, 24, 45, 66, 170, 75, 90]
- Сортируем по сотням → [2, 24, 45, 66, 75, 90, 170, 802]
Псевдокод
exp = 1
max_value = max(arr)
while max_value / exp > 0:
counting_sort_by_digit(arr, exp)
exp *= 10
Оптимизация: Работает за линейное время, если число разрядов фиксировано.
Сложность
Время
O(d · (n + k)), где d — число разрядов, k — основание.
Память
O(n + k).
Когда используется
- Большие массивы целых чисел
- Сортировка строк фиксированной длины
- Высокопроизводительные системы
Ключевые свойства
- Стабильный
- Не сравнительный
- Линейный по числу элементов
Комментарии к уроку
Войдите, чтобы оставить комментарий.
Пока нет комментариев — будьте первым.