Как сделать быструю сортировка массива на javascript — Q&A Хекслет
2026-02-26 17:07 Diff

Ответы

Быстрая сортировка, часто называемая qsort, один из самых быстрых известных универсальных алгоритмов сортировки массивов: в среднем имеет сложность O(n\log n) обменов при упорядочении n элементов. Из-за наличия ряда недостатков на практике обычно используется с некоторыми доработками. Не углубляясь в подробности рассмотрим простой вариант использующий рекурсию.

Алгоритм:

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

Реализация:

Для примера быстрой сортировки числового массива numbers можно использовать встроенный метод Array.prototype.sort(). Этот метод сортирует элементы массива в порядке возрастания или по алфавиту, если элементы являются строками. Однако, если нужно отсортировать массив в порядке убывания или по другому критерию, то можно передать в метод sort() функцию сравнения.

Пример сортировки массива чисел в порядке возрастания:

Пример сортировки массива строк в порядке убывания: