Что такое сортировка выбором?

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

Как это работает

Поскольку мы храним индексы каждого элемента, нам нужно создать переменную.

let min;

Как только переменная установлена, нам нужно выполнить итерацию по массиву.

for(let i = 0; i < array.length - 1; i++){

Обратите внимание, как формируется цикл с array.length — 1. Это связано с тем, что как только мы отсортируем набор массивов, мы уменьшим количество элементов в этом массиве. При настройке первого набора итераций переменной min требуется значение. Мы можем установить min равным I, поскольку значение равно нулю.

for(let i = 0; i < array.length - 1; i++){
        min = i

Вторая итерация начинается с первого индекса.

for(let j = i + 1; j < array.length; j++){

. Кроме того, внутри цикла необходимо добавить условное выражение. Если первый индекс меньше предыдущего. Мы устанавливаем переменную в index.

if(array[j] < array[min]) min = j

Каждое значение, имеющее наименьшее значение по сравнению с индексом до того, как оно будет сохранено по индексу.

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

if(i !== min){

Если условие оценивается как истинное, мы продолжим менять местами два значения и возвращать массив в правильном порядке.

if(i !== min){
        let temp = array[i]
        array[i] = array[min]
        array[min] = temp
    }

Вот полное представление об алгоритме.

function selectionSort(array) {
    let min;
for(let i = 0; i < array.length - 1; i++){
        min = i
for(let j = i + 1; j < array.length; j++){
            if(array[j] < array[min]) min = j
        }
if(i !== min){
        let temp = array[i]
        array[i] = array[min]
        array[min] = temp
    }
    }
return array
}

Давайте поговорим о временной сложности

Временная сложность считается O(n2). Двойной цикл через массив, чтобы вернуть наши упорядоченные элементы. Оставьте комментарий ниже для любого вопроса