Jump to content

Сортировка по ячейкам

Сортировка по ячейкам
Сорт Алгоритм сортировки
Структура данных Множество
Худшая производительность , где N — диапазон значений ключа, а n — размер входных данных.
Наихудшая пространственная сложность
Оптимальный Если и только если

Сортировка по ячейкам — это алгоритм сортировки , который подходит для сортировки списков элементов, в которых количество элементов n и длина N диапазона возможных значений ключа примерно одинаковы. [1] Это требует времени O ( n + N ). Она похожа на сортировку с подсчетом , но отличается тем, что она «перемещает элементы дважды: один раз в массив сегментов и снова в конечный пункт назначения, [тогда как] сортировка с подсчетом создает вспомогательный массив, а затем использует этот массив для вычисления конечного пункта назначения каждого элемента и перемещения предмет там». [2]

Алгоритм «ячейки» работает следующим образом:

  1. Учитывая массив значений, которые нужно отсортировать, создайте вспомогательный массив изначально пустых «ячеек», по одной ячейке для каждого ключа в диапазоне ключей в исходном массиве.
  2. Просматривая исходный массив, поместите каждое значение в ячейку, соответствующую его ключу, так, чтобы каждая ячейка в конечном итоге содержала список всех значений с этим ключом.
  3. Выполните итерацию по массиву ячеек в порядке возрастания ключей и для каждой ячейки поместите ее элементы в исходный массив в порядке возрастания.

Предположим, что кто-то сортирует эти пары значений по их первому элементу:

  • (5, «привет»)
  • (3, «пирог»)
  • (8, «яблоко»)
  • (5, «король»)

Для каждого значения от 3 до 8 мы устанавливаем ячейку, а затем перемещаем каждый элемент в свою ячейку:

  • 3: (3, «пирог»)
  • 4:
  • 5: (5, «здравствуйте»), (5, «король»)
  • 6:
  • 7:
  • 8: (8, «яблоко»)

Затем массив ячеек повторяется по порядку, и элементы перемещаются обратно в исходный список.

Разница между сортировкой по ячейкам и сортировкой с подсчетом заключается в том, что при сортировке с подсчетом вспомогательный массив не содержит списков входных элементов, а только считает:

  • 3: 1
  • 4: 0
  • 5: 2
  • 6: 0
  • 7: 0
  • 8: 1

Для массивов, где N намного больше n , сортировка сегментами — это обобщение, более эффективное с точки зрения пространства и времени.

См. также

[ редактировать ]
  1. ^ «Словарь алгоритмов и структур данных NIST: сортировка по ячейкам» .
  2. ^ Блэк, Пол Э. «Словарь алгоритмов и структур данных» . НИСТ . Проверено 6 ноября 2015 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e09a68c6baada42405c2fef0d70a794f__1714680780
URL1:https://arc.ask3.ru/arc/aa/e0/4f/e09a68c6baada42405c2fef0d70a794f.html
Заголовок, (Title) документа по адресу, URL1:
Pigeonhole sort - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)