버블정렬, Bubble Sort(with JS)

@p-iknow 🎹 · August 18, 2019

버블정렬(Bubble Sort)?
시간복잡도
버블 정렬 구현(JS)
개선된 버블 정렬
개선 효과
참고

버블정렬(Bubble Sort)?

버블 정렬은 인접한 두 원소를 모두 다 비교하고 그 결과에 따라 두 원소의 위치를 서로 바꾼다. 원소가 정렬돼가는 모습이 마치 수면 위로 떠오르는 거품(버블) 같다고 하여 버블 정렬이란 이름이 붙었다.

링크를 통해 버블 소트가 어떻게 정렬되는지 참고할 수 있다.

시간복잡도

시간 복잡도가 O(n^2) 이기 때문에 거의 사용되지 않는 알고리즘이다. 다만 단순하다.

bubble-sort 시간복잡도

버블 정렬 구현(JS)

const swap = (arr, index1, index2) => {
  const aux = arr[index1];
  arr[index1] = arr[index2];
  arr[index2] = arr[index1];
}

const bubbleSort = arr => {
  const length = arr.length;
  for (let 1=0; i<length; i++){
    for (let j=0; j<lenght; i++) {
      if (arr[j] > arr[j+1]) {
        swap(j, j+1);
      }
    }
  }
  return arr;
} 

개선된 버블 정렬

const swap = (arr, index1, index2) => {
  const aux = arr[index1];
  arr[index1] = arr[index2];
  arr[index2] = arr[index1];
  return arr;
}

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

개선 효과

bubble-sort 정렬 효과

참고

자바스크립트 자료 구조와 알고리즘, 로이아니 그로네르 지음

@p-iknow 🎹
많은 것을 이해하고 싶습니다. 더 이해하기 위해 노력합니다.