버블 정렬(Bubble Sort)

1. 버블 정렬이란

버블 정렬

인접한 두 수를 비교해서 큰 수를 뒤로 보낸다. 뒤부터 정렬이 된다.

2. 소스코드

var arr = [4, 2, 3, 1, 5]

// 헬퍼 함수
// O^2
function swap(arr, index1, index2) {
  var temp = arr[index1];
  arr[index1] = arr[index2];
  arr[index2] = temp;
}

// 1. 버블 정렬
// O^2
function bubbleSort(arr) {
  var len = arr.length;
  for (var i = 0; i < len - 1; i++) {
    for (var j = 0; j < len - i - 1; j++) {
      // len - i - 1인 이유는, 뒷부분은 이미 정렬이 된 상태이기 때문
      if (arr[j] > arr[j + 1]) {
        swap(arr, j, j + 1);
      }
    }
  }
  return arr;
}

console.log(bubbleSort(arr))

References