버블 정렬(Bubble Sort)은 가장 기본적인 정렬 알고리즘 중 하나입니다. 배열의 인접한 두 요소를 서로 비교하고, 앞의 값이 더 크면 두 값을 스왑(swap, 교환)하여 오름차순으로 정렬하는 방식입니다.
이 과정을 배열 전체에 대해 반복하면, 큰 값들이 점차 뒤쪽으로 이동하며 마치 거품이 수면 위로 떠오르는 것처럼 보인다고 하여 '버블 정렬'이라는 이름이 붙었습니다.
예제 코드
다음은 자바스크립트로 구현한 버블 정렬 예제입니다.
var numbers = [10, 100, 30, 40, 90, 4, 91, 56, 78];
function bubbleSorting(numbers) {
for (var outer = 0; outer < numbers.length; outer++) {
for (var inner = 0; inner < numbers.length; inner++) {
if (numbers[outer] < numbers[inner]) {
var temp = numbers[outer];
numbers[outer] = numbers[inner];
numbers[inner] = temp;
}
}
}
return numbers;
}
console.log(bubbleSorting(numbers));코드 설명
- 외부 반복문(outer): 배열의 각 요소를 순서대로 선택합니다.
- 내부 반복문(inner): 선택된 요소를 나머지 모든 요소와 비교합니다.
- 조건문: 현재 요소(outer)가 비교 대상(inner)보다 작으면 두 값을 임시 변수(temp)를 이용해 서로 교환합니다.
프로그램 실행 방법
위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 사용합니다.
node fileName.js
여기서는 파일명을 demo233.js로 저장했다고 가정합니다.
실행 결과
위 코드를 실행하면 아래와 같이 배열이 오름차순으로 정렬된 결과를 확인할 수 있습니다.
PS C:\Users\Amit\JavaScript-code> node demo233.js
[
4, 10, 30, 40, 56,
78, 90, 91, 100
]이처럼 버블 정렬은 구현이 매우 간단하지만, 시간 복잡도가 O(n²)이므로 데이터 양이 많을 경우에는 퀵 정렬(Quick Sort)이나 병합 정렬(Merge Sort) 같은 더 효율적인 알고리즘을 사용하는 것이 좋습니다.