EMZETT.
Войти

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

Коротко: Сортировка подсчётом и поразрядная сортировка работают без сравнений и потому могут быть быстрее O(n log n), если ключи — целые числа из небольшого диапазона.

Подробнее: Методы на сравнениях, такие как быстрая сортировка, никогда не могут быть лучше O(n log n). Использование свойств ключей обходит этот предел.

Подробности

  • Сортировка подсчётом: Считает, сколько раз встречается каждое значение (массив размера k), вычисляет из этого начальные позиции и записывает элементы туда. Время O(n + k), устойчива.
  • Предел: Если диапазон значений k огромен (например, 64-битные числа), массив подсчёта непригоден.
  • Поразрядная сортировка: Сортирует по разрядам, от младшего к старшему, каждый раз устойчивым методом вроде сортировки подсчётом. Время O(d · (n + b)) при d разрядах и основании b.
  • Пример: 32-битные числа с основанием 256: всего четыре прохода.
  • Применение: Сортировка идентификаторов, почтовых индексов, строк фиксированной длины, графические конвейеры.
  • Цена: Дополнительная память и зависимость от типа ключа.

См. также: O-нотация, Сортировка