[알고리즘] 버블소트
거품정렬은 인접한 두 원소의 크기를 비교하며 배열의 가장 큰(또는 가장 작은) 값을 끝으로 하나씩 밀어낸다. 마치 거품이 위로 올라가는 듯한 이미지를 연상시키기 때문에 거품정렬이라는 이름이 붙었다.
한줄요약
앞에서부터 오른쪽 방향으로 이웃한 두 요소를 비교하여 큰값을 뒤로 밀어낸다
특징
- stable sort
- 시간복잡도: O(n^2)
자바스크립트 코드
function bubbleSort(a) {
for(var i=0; i < a.length-1; i++){
console.log(a)
for(var j=0; j < a.length-1-i; j++ ){
if(a[j] > a[j+1]){ // 오름차순
var tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
}
}
return a;
}
bubbleSort([1,4,5,2,7,8]);
/*
[1, 4, 5, 2, 7, 8]
[1, 4, 2, 5, 7, 8]
[1, 2, 4, 5, 7, 8]
[1, 2, 4, 5, 7, 8]
[1, 2, 4, 5, 7, 8]
[1, 2, 4, 5, 7, 8]
*/
Comments