[java] 버블 정렬 알고리즘

버블 정렬은 가장 간단한 정렬 알고리즘 중 하나로, 인접한 두 원소를 비교하고 필요에 따라 위치를 바꿔가며 정렬합니다. 이 알고리즘은 성능이 좋지 않아 실전에서 잘 사용되지 않지만, 기초적인 알고리즘을 이해하고 구현하기에 좋은 연습 문제가 될 수 있습니다.

알고리즘 개요

아래는 Java로 구현한 버블 정렬 알고리즘의 간단한 예제코드입니다.

public class BubbleSort {
    public void bubbleSort(int arr[]) {
        int n = arr.length;
        for (int i = 0; i < n-1; i++) {
            for (int j = 0; j < n-i-1; j++) {
                if (arr[j] > arr[j+1]) {
                    // swap arr[j+1] and arr[j]
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
    }
}

위 코드에서 bubbleSort 메서드는 정렬되지 않은 배열을 파라미터로 받아 버블 정렬을 수행합니다. 이미 정렬된 부분은 건너뛰면서 가장 큰 원소가 맨 끝으로 이동하게 됩니다.

실행 예제

다음은 위에서 구현한 버블 정렬 알고리즘을 이용하여 배열을 정렬하는 예제입니다.

public class Main {
    public static void main(String[] args) {
        int[] arr = {64, 34, 25, 12, 22, 11, 90};
        BubbleSort bubbleSort = new BubbleSort();
        bubbleSort.bubbleSort(arr);
        System.out.println("정렬된 배열:");
        for (int i=0; i<arr.length; ++i) {
            System.out.print(arr[i] + " ");
        }
    }
}

버블 정렬 알고리즘을 수행한 결과로, 아래와 같이 출력됩니다.

정렬된 배열:
11 12 22 25 34 64 90

결론

이렇게 Java로 버블 정렬 알고리즘을 구현하고 실행하는 방법에 대해 알아보았습니다. 버블 정렬은 이해하기 쉽고 구현하기 간단하지만, 데이터의 크기가 클수록 성능이 떨어지므로 실제 프로덕션 환경에서는 잘 사용되지 않습니다.

참고 자료: