[java] 자바의 버블 정렬(Bubble Sort) 자료구조에 대해 알아보기

자료구조와 알고리즘은 프로그래밍에서 핵심적인 부분이며, 이 중에서도 정렬 알고리즘은 매우 중요합니다. 정렬 알고리즘 중 하나인 버블 정렬(Bubble Sort)은 비교적 간단하면서도 효율적인 방법으로 배열을 정렬하는 데 사용됩니다.

버블 정렬(Bubble Sort)

버블 정렬은 인접한 두 원소를 비교하면서 정렬을 수행하는 알고리즘입니다. 이 때, 두 원소의 순서가 잘못되어 있다면 서로 위치를 교환합니다. 이 과정을 모든 원소에 대해 반복하면서 정렬을 완성합니다.

예를 들어, 배열이 [5, 3, 8, 4, 2]일 경우 첫 번째 패스에서는 5와 3을 비교하여 위치를 교환하고, 다음으로 5와 8을 비교하여 위치를 교환합니다. 이러한 방식으로 모든 원소에 대해 비교하고 교환을 반복하여 최종적으로 배열을 오름차순으로 정렬합니다.

자바에서의 버블 정렬 구현

아래는 자바에서의 버블 정렬을 구현한 예제 코드입니다.

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]) {
                    // 두 원소의 위치를 교환
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
    }
}

위의 코드에서 bubbleSort 메서드는 배열을 받아 버블 정렬을 수행합니다. 이중 for문을 이용하여 인접한 두 원소를 비교하고 교환하는 과정을 반복합니다.

마치며

자바에서의 버블 정렬은 간단하면서도 기본적인 정렬 알고리즘을 이해하기에 좋은 예제입니다. 알고리즘을 간단한 예제로 이해하면서, 좀 더 복잡한 알고리즘을 이해하고 구현하는 데 도움이 될 것입니다.

참고 문헌: