[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로 버블 정렬 알고리즘을 구현하고 실행하는 방법에 대해 알아보았습니다. 버블 정렬은 이해하기 쉽고 구현하기 간단하지만, 데이터의 크기가 클수록 성능이 떨어지므로 실제 프로덕션 환경에서는 잘 사용되지 않습니다.
참고 자료: