Сортировка

Сортировке упорядочены и идут от "лучшей" к "худшей"

Быстрая сортировка

Время выполнения nlogn.

В быстрой сортировке необходимо определить базовый случай (например при сортировке массива по возрастанию это массив с одним элементом).

Так же необходим опорный элемент, это тот элемент, с которого начнётся сравнение.

Пример js:

function quickSort(array) {
    if (array.length) < 2 return array; // Базовый случай
    
    const pivot = array[0]; // Опорный элемент
    const less = array.filter(element => {
       return element <= pivot;
    });
    const greater = array.filter(element => {
       return element > pivot;
    });
   return quickSort(less) + [pivot] + quickSort(greater);
}   

Визуализация сортировки:

Сортировка слиянием

Время выполнения nlogn.

Хорошая статья здесь.

Сортировка выбором

Время выполнения n^2.

Алгоритм: Проходим по искомому набору, добавляем в новый набор элемент с заданным условием, после прохождения всего искомого набора, удаляем элемент, который был добавлен.

Хорошая статья здесь.

Сортировка "Пузырьком"

Время выполнения n^2.

Алгоритм: проходим по каждому элементу, сравнивая текущий со следующим, если выполняет условие, то меняем их местами. В итоге самый большой будет в конце и при последующем обходе его можно не учитывать. Цикл повторяем длинна массива - 1 раз.

Хорошая статья здесь.

Last updated