Вот несколько распространенных алгоритмов сортировки:
-
Пузырьковая сортировка. Этот алгоритм неоднократно сравнивает соседние элементы и меняет их местами, если они расположены в неправильном порядке. Это продолжается до тех пор, пока весь список не будет отсортирован.
-
Сортировка выбором. В этом алгоритме список разделен на две части: отсортированная часть в начале и неотсортированная часть в конце. Алгоритм неоднократно выбирает наименьший элемент из неотсортированной части и помещает его в конец отсортированной части.
-
Сортировка вставками. Этот алгоритм создает окончательный отсортированный список по одному элементу за раз. Он учитывает каждый элемент в списке и вставляет его в правильную позицию в отсортированной части списка.
-
Сортировка слиянием. Сортировка слиянием – это алгоритм “разделяй и властвуй”, который делит несортированный список на более мелкие подсписки, сортирует их, а затем снова объединяет для получения окончательно отсортированного списка.
-
Быстрая сортировка: этот алгоритм выбирает «опорный» элемент и разделяет другие элементы на два подмассива в зависимости от того, меньше они или больше опорного элемента. Затем подмассивы сортируются рекурсивно.
-
Сортировка кучей. Сортировка кучей использует структуру данных двоичной кучи для сортировки элементов. Сначала он создает максимальную кучу из входного массива, затем многократно удаляет максимальный элемент из кучи и помещает его в отсортированную часть списка.
-
Поразрядная сортировка. Поразрядная сортировка – это алгоритм несравнительной сортировки, который сортирует данные с помощью целочисленных ключей путем группировки ключей по отдельным цифрам или другим значащим цифрам.
-
Сортировка по подсчету. Сортировка по подсчету работает путем определения количества элементов, имеющих различные значения ключей, а затем с использованием арифметических вычислений для расчета позиций каждого ключа в выходной последовательности.
-
Сортировка сегментов. Сортировка сегментов делит входные данные на набор сегментов, каждый из которых представляет диапазон значений. Элементы распределяются по сегментам, и каждый сегмент сортируется индивидуально, используя другой алгоритм сортировки или рекурсивно применяя сортировку сегментов.
-
Сортировка Шеллом. Сортировка Шеллом – это вариант сортировки вставкой, который позволяет обмениваться элементами, расположенными далеко друг от друга, для создания частично отсортированных массивов, которые можно эффективно сортировать с помощью сортировки вставками.
-
Сортировка по Тиму. Сортировка по Тиму — это гибридный алгоритм сортировки, основанный на сортировке слиянием и сортировке вставками. Он предназначен для эффективной работы со многими видами реальных данных.
-
Сортировка шейкером. Этот вариант пузырьковой сортировки, также известный как двунаправленная пузырьковая сортировка, сортирует список в обоих направлениях, перемещая самые большие элементы в конец, а самые маленькие — в начало.
-
Гребенчатая сортировка. Гребенчатая сортировка — это улучшение по сравнению с пузырьковой сортировкой, которое исключает небольшие значения в конце списка за счет использования пробела больше единицы.
-
Сортировка Gnome. Сортировка Gnome — это простой и интуитивно понятный алгоритм сортировки, который работает путем многократного перемещения элемента в правильное положение с помощью серии перестановок.
-
Блинная сортировка. Блинная сортировка — это разновидность задачи сортировки, при которой единственной разрешенной операцией является обращение элементов некоторого префикса последовательности.
-
Богосортировка: Богосорт — это крайне неэффективный алгоритм случайной сортировки, который неоднократно генерирует случайные перестановки входных данных, пока не будет найдена отсортированная перестановка.
-
Сортировка Stooge. Сортировка Stooge – это рекурсивный алгоритм сортировки, который делит список на трети и сортирует первые две трети, затем последние две трети и, наконец, снова первые две трети.