Алгоритм пузырьковой сортировки совершает несколько проходов по списку:
Быстрая сортировка выбирает элемент списка, называемый осевым, а затем переупорядочивает список таким образом, что все элементы, меньше осевого, оказываются за ним, а большие элементы - перед ним:
Выбрав элемент в списке, быстрая сортировка делит с его помощью список на три части:
Изучаемые методы сортировки оказываются исключительно эффективными для сортировки массивов любых размеров:
Инверсия - пара элементов списка, идущих в неправильном порядке:
На первом шаге в сортировке Шелла подсписки представляют собой просто пары элементов:
Накладные расходы на создание бинарного дерева уменьшаются с ростом списка:
Необычность сортировки Шелла состоит в том, что она рассматривает весь список как совокупность раздельно размещенных подсписков:
Основная идея сортировки вставками состоит в том, что при добавлении нового элемента в уже отсортированный список его стоит сразу вставлять в нужное место вместо того, чтобы вставлять его в произвольное место:
При корневой сортировке упорядочивание списка происходит без непосредственного сравнения ключевых значений между собой:
Пузырьковая сортировка и сортировка вставками плохо ведут себя в среднем случае, поскольку каждая из них удаляет по одной инверсии на одно сравнение:
Разбиение списка на две части происходит при вычислении значения переменной middle:
Сложность сортировки вставками в наихудшем случае является линейной:
Сортировку слиянием можно записать в виде рекурсивного алгоритма, выполняющего работу, двигаясь вниз по рекурсии:
Этап построения пирамиды имеет линейную сложность по числу элементов списка: