deVSner

버블정렬 본문

자료구조 및 알고리즘

버블정렬

RudeofSun 2020. 7. 16. 09:08

 

성능이 O(n^2)이다.

극심하게 안 좋다.

 

기본 원리는,

[5,2,7,6,9,8]이라는 배열이 있다면,

 

앞의 두 인덱스끼리만 비교를 하면서 끝까지 가는 것이다.

한 과정에 두 수의 위치를 바꾸는 작업만을 할 수 있다.

그래서 성능이 개판이다..ㅜㅜ

 

var bubbleSort = function(array) {
  var length = array.length;
  var i, j, temp;
  for (i = 0; i < length - 1; i++) {
  	for (j= 0; j < length - 1 - i; j++) {
      if (array[j] > array[j + 1]) {
        temp = array[j];
        array[j] = array[j + 1];
        array[j + 1] = temp;
      }
    }
  }
  return array;
}

for 문이 2번 도는 것에 주의를 해야 한다.

빈 temp 변수를 만들어서 거기에 잠시 값을 옮겨 담는다.