Алгоритмы
October 27, 2023

Cортировка пузырьком ~

Пузырьковая сортировка является устойчивой, а ее временная сложность составляет O(N²) в худшем случае.

Алгоритм

  • Первый цикл отслеживает индекс последнего всплывшего элемента. На каждой итерации он будет уменьшаться.
  • Второй цикл – это индекс активного элемента на текущей итерации. Он будет начинаться с нуля и продолжаться до элементов, "всплывших" на предыдущих итерациях. Так как они уже отсортированы, не имеет смысла снова их сравнивать.

Код

var swap = function (min, max) { 
  var temp = arr[min]
  arr[min] = arr[max];
  arr[max] = temp 
} 

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