Пузырьковая сортировка, также известная как сортировка с понижением, представляет собой простой алгоритм сортировки, который сравнивает соседние элементы и меняет их местами, если они расположены в неправильном порядке. Проход по списку повторяется до тех пор, пока список не будет отсортирован. Меньший или больший элемент «пузырьком» вверху списка. В моем примере я поместил самый большой элемент в крайнее правое положение (сверху как наивысший индекс) массива.

Эта картинка из Вики достаточно хороша, чтобы объяснить, что такое сортировка пузырьком.

Работающий:-

Сравните первый пункт со вторым. Если первый элемент больше второго. Поменяйте их местами так, чтобы больший остался на втором месте.

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

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

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

Двигайтесь назад внутри внешней петли.

const bubbleSort = (arr) => {
  let len = arr.length;
  var i, j, temp;
  // Outer Loop
  for (i = len - 1; i >= 0; i--) {
    // Inner Loop
    for (j = 1; j <= i; j++) {
      if (arr[j - 1] > arr[j]) {
        temp = arr[j];
        arr[j] = arr[j - 1];
        arr[j - 1] = temp;
      }
    }
  }
  return arr;
}
console.log(bubbleSort([7, 5, 2, 4, 3, 9, -6, -1]))

Вывод приведенного выше кода будет: - [-6, -1, 2, 3, 4, 5, 7, 9]

Пузырьковая сортировка имеет наихудшую и среднюю сложность O(n2), где n — количество сортируемых элементов.