Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트 버블 정렬(Bubble Sort) – 인접 요소 비교 후 스왑하는 방법

버블 정렬(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) 같은 더 효율적인 알고리즘을 사용하는 것이 좋습니다.