Jump to content

Адаптивная сортировка

Алгоритм сортировки попадает в семейство адаптивной сортировки, если он использует существующий порядок на входных данных. Он выигрывает от предварительной сортировки входной последовательности (или ограниченного количества беспорядка для различных определений мер беспорядка) и сортируется быстрее. Адаптивная сортировка обычно выполняется путем модификации существующих алгоритмов сортировки.

Мотивация

[ редактировать ]

Алгоритмы сортировки на основе сравнения традиционно имели дело с достижением оптимальной границы O ( n log n ) при работе с временной сложностью . Адаптивная сортировка использует существующий порядок входных данных, чтобы попытаться добиться лучшего времени, так что время, затрачиваемое алгоритмом на сортировку, является плавно растущей функцией размера последовательности и беспорядка в последовательности. Другими словами, чем более предварительно отсортированы входные данные, тем быстрее их следует сортировать.

Это привлекательная особенность алгоритма сортировки, поскольку на практике часто встречаются почти отсортированные последовательности. Таким образом, производительность существующих алгоритмов сортировки можно повысить, приняв во внимание существующий порядок на входе.

Большинство алгоритмов сортировки для наихудшего случая, которые оптимально работают в наихудшем случае, особенно сортировка кучей и сортировка слиянием , не принимают во внимание существующий порядок на входе, хотя этот недостаток легко исправить в случае сортировки слиянием , проверив, соответствует ли последний элемент левой группы меньше (или равен) первому элементу правой группы, и в этом случае операцию слияния можно заменить простой конкатенацией – модификацией, которая вполне вписывается в рамки создания адаптивного алгоритма. .

Классическим примером адаптивного алгоритма сортировки является сортировка вставками . [1] В этом алгоритме сортировки входные данные сканируются слева направо, неоднократно находя позицию текущего элемента и вставляя его в массив ранее отсортированных элементов.

Ниже приведен псевдокод для алгоритма сортировки вставками (массив X начинается с нуля ):

procedure Insertion Sort (X):
    for j = 1 to length(X) - 1 do
        t ← X[j]
        i ← j
        while i > 0 and X[i - 1] > t do
            X[i] ← X[i - 1]
            i ← i - 1
        end
        X[i] ← t
    end

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

Другими примерами адаптивных алгоритмов сортировки являются адаптивная пирамидальная сортировка , адаптивная сортировка слиянием , терпеливная сортировка . [2] Сортировка Шелла , гладкая сортировка , расширенная сортировка , Тимсорт и декартова древовидная сортировка . [3]

См. также

[ редактировать ]
  • Хагеруп, Торбен; Юрки Катьяйнен (2004). Теория алгоритмов – SWAT 2004 . Берлин Гейдельберг: Springer-Verlag. стр. 221–222. ISBN  3-540-22339-8 .
  • Мехта, Динеш П.; Сартадж Сахни (2005). Структуры данных и приложения . США: Чепмен и Холл/CRC. стр. 11–8–11–9. ISBN  1-58488-435-5 .
  • Петерссон, Ола; Алистер Моффат (1992). Фреймворк для адаптивной сортировки . Конспекты лекций по информатике. Том. 621. Берлин: Springer Berlin/Heidelberg. стр. 422–433. дои : 10.1007/3-540-55706-7_38 . ISBN  978-3-540-55706-7 . ISSN   1611-3349 .
  1. ^ Эстивилл-Кастро, Владимир; Вуд, Дерик (декабрь 1992 г.). «Обзор адаптивных алгоритмов сортировки». АКМ . 24 (4). Нью-Йорк, штат Нью-Йорк, США: 441–476. CiteSeerX   10.1.1.45.8017 . дои : 10.1145/146370.146381 . ISSN   0360-0300 . S2CID   1540978 .
  2. ^ Чандрамули, Бадриш; Гольдштейн, Джонатан (2014). Терпение — добродетель: новый взгляд на слияние и сортировку на современных процессорах (PDF) . СИГМОД/ПОДС.
  3. ^ Левкопулос, Христос; Петерссон, Ола (1989). «Групповая сортировка — адаптирована для предварительно отсортированных файлов». WADS '89: Материалы семинара по алгоритмам и структурам данных . Конспекты лекций по информатике. Том. 382. Лондон, Великобритания: Springer-Verlag. стр. 499–509. дои : 10.1007/3-540-51542-9_41 . ISBN  978-3-540-51542-5 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 577a276aa9aaf7e37270e79650775a32__1718045580
URL1:https://arc.ask3.ru/arc/aa/57/32/577a276aa9aaf7e37270e79650775a32.html
Заголовок, (Title) документа по адресу, URL1:
Adaptive sort - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)