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

JavaScript로 음수·양수 혼합 배열 버블 정렬 구현하기

다음과 같이 음수와 양수가 섞여 있고 아직 정렬되지 않은 배열이 있다고 가정해 보겠습니다.

var arr = [10, -22, 54, 3, 4, 45, 6];

버블 정렬이란?

버블 정렬(Bubble Sort)은 인접한 두 요소를 반복적으로 비교하고, 순서가 잘못된 경우 서로 교환하는 방식으로 배열을 정렬하는 가장 기본적인 알고리즘입니다. 한 번의 순회(pass)가 끝날 때마다 가장 큰 값이 배열 끝으로 이동하며, 음수든 양수든 동일한 비교 로직으로 처리되기 때문에 별도의 조건 분기 없이 자연스럽게 오름차순 정렬됩니다.

구현 예제

다음은 JavaScript로 버블 정렬을 구현한 전체 코드입니다.

function bubbleSort(numberArray, size) {
    for (var lastIndex = size - 1; lastIndex > 0; lastIndex--) {
        for (var i = 0; i < lastIndex; i++) {
            if (numberArray[i] > numberArray[i + 1]) {
                var temp = numberArray[i];
                numberArray[i] = numberArray[i + 1];
                numberArray[i + 1] = temp;
            }
        }
    }
    return numberArray;
}
var arr = [10, -22, 54, 3, 4, 45, 6];
console.log(bubbleSort(arr, arr.length));

코드 동작 원리

외부 루프: 배열의 마지막 인덱스부터 시작해 매 순회마다 하나씩 줄여갑니다. 각 순회가 완료되면 해당 범위에서 가장 큰 값이 맨 뒤로 확정됩니다.
내부 루프: 인접한 두 요소를 비교하여 앞의 값이 더 크면 임시 변수(temp)를 활용해 두 값을 교환(swap)합니다.
음수 처리: 비교 연산자(>)는 음수와 양수를 구분 없이 처리하므로, 추가 로직 없이도 -22 같은 음수 값도 올바르게 정렬됩니다.

프로그램 실행 방법

위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 입력합니다.

node fileName.js

여기서는 파일 이름이 demo280.js라고 가정하겠습니다.

실행 결과

콘솔에는 다음과 같이 오름차순으로 정렬된 배열이 출력됩니다.

PS C:\Users\Amit\javascript-code> node demo280.js
[
    -22,  3,  4, 6,
    10, 45, 54
]