Сравнение пузырьковой сортировки с сортировкой выбором

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

Предпосылки

  • Обозначение большого O
  • Javascript для цикла

Пузырьковая сортировка

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

Я подробно объясню пузырьковую сортировку на изображении ниже.

Массив на изображении выше не отсортирован. Он состоит из 8 целых чисел, то есть 6,5,3,1,8,7,2,4.

Шаги, необходимые для сортировки массива, следующие:

ПРОШЕЛ 1

Шаг 1. Сначала мы сравниваем элемент [0] с элементом [1]. a[0] больше, чем a[1], то есть 6>5, поэтому мы меняем местами элементы.

Шаг 2. На этом шаге a[1] будет сравниваться с a[2]. Обратите внимание, что a[1] больше, чем a[2], то есть 6>3, и мы снова меняем местами элементы.

Шаг 3: a[2] будет сравниваться с a[3]. Обратите внимание, что 6>1, т. е. a[2] больше, чем a[3], поэтому мы меняем элементы местами.

Шаг 4. На этом шаге a[3] будет сравниваться с a[4]. Обратите внимание, что a[3] меньше, чем a[4], поэтому мы оставляем их и переходим к следующей итерации, поскольку они расположены в правильном порядке.

Шаг 5. На этом шаге a[4] будет сравниваться с a[5]. Обратите внимание, что a[4] больше, чем a[5], то есть 8×7, поэтому мы меняем местами элементы.

Шаг 6: сравним a[5] с a[6]. Обратите внимание, что a[5] больше, чем a[6], то есть 8×2, поэтому мы меняем местами элементы.

Шаг 7. На этом шаге a[6] будет сравниваться с a[7]. Обратите внимание, что a[6] больше, чем a[7], поэтому мы меняем местами элементы.

В конце прохода 1 мы получили массив ниже.

Проход 2: мы должны начать сравнивать элементы с первой позиции, т. е. a[0] будет сравниваться с a[1]. Мы повторяем процесс, пока массив не будет отсортирован.

Реализация алгоритма пузырьковой сортировки

function bubbleSort(arr){
    for(let i=0; i< arr.length-1; i++){
        for(let j=0; j<arr.length-1; j++){
            if(arr[j]>arr[j+1]){
                arr[j],arr[j+1]=arr[j+1], arr[j]
            }
        }
    }
}

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

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

Шаг 1

Красная стрелка отслеживает текущее минимальное число. Зеленая стрелка представляет наш текущий элемент, когда мы перебираем массив, находим 1, устанавливаем его как текущий минимум и меняем местами 1 и 2. Наш новый массив выглядит так: диаграмма ниже.

Шаг 2

На этом шаге мы устанавливаем 5 в качестве нашего текущего минимума и текущего элемента с помощью зеленой и красной стрелок. мы снова сканируем массив, используя зеленую стрелку, чтобы проверить меньшее число. Теперь мы нашли 2 и меняем местами 5 и 2.

Наш новый массив выглядит так, как показано на диаграмме ниже.

Шаг 3

На этом шаге мы устанавливаем наш текущий минимум равным 3, а текущий элемент — равным 3, когда мы сканируем массив. Обратите внимание, что в правой части массива нет числа меньше 3. Таким образом, здесь не происходит подкачки.

Шаг 4

В этой итерации наш текущий минимум установлен на 4, а текущий элемент на 4, когда мы сканируем массив. Обратите внимание, что в правой части массива нет числа меньше 4. Никакого обмена здесь не происходит.

Шаг 5

На этом шаге мы устанавливаем текущий минимум равным 5, а текущий элемент — 5. В правой части массива нет других элементов. Итак, мы возвращаем 5

Реализация алгоритма сортировки выбором

for(let i=0; i<arr.length; i++){
    let min=i;
    for(let i+1; j<arr.length; j++){
        if(arr[j]<arr[min]){
            min=j
        }
    }
   [ arr[i],arr[min]]=arr[min, arr[i]]
}

Различия между сортировкой пузырьком и сортировкой выбором

Заключение

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

Рекомендации