버블 정렬은 가장 단순한 정렬 알고리즘 중 하나로, 인접한 두 요소를 비교해서 크기가 잘못된 경우 서로 교환하는 방식으로 동작합니다. 이러한 과정을 반복하면서 가장 큰(또는 작은) 요소가 끝으로 "버블처럼" 올라가는 모습을 보입니다.
public class BubbleSortExample {
public static void bubbleSort(int[] arr) {
int n = arr.length;
boolean swapped;
// 외부 루프는 전체 패스를 반복
for (int i = 0; i < n - 1; i++) {
swapped = false; // 교환 여부를 추적
// 내부 루프는 현재 패스에서 정렬
for (int j = 0; j < n - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
// 요소 교환
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
swapped = true; // 교환 발생
}
}
// 교환이 없었다면 배열은 이미 정렬된 상태
if (!swapped) break;
}
}
public static void printArray(int[] arr) {
for (int num : arr) {
System.out.print(num + " ");
}
System.out.println();
}
// 실행 메서드
public static void main(String[] args) {
int[] numbers = {5, 3, 8, 4, 2};
System.out.println("정렬 전 배열:");
printArray(numbers);
bubbleSort(numbers);
System.out.println("정렬 후 배열:");
printArray(numbers);
}
}
정렬 전 배열:
5 3 8 4 2
정렬 후 배열:
2 3 4 5 8
이진 탐색(Binary Search) (0) | 2025.06.15 |
---|---|
선형 탐색(Linear Search) (0) | 2025.06.15 |
병합 정렬(Merge Sort) (0) | 2025.06.15 |
퀵 정렬(Quick Sort) (0) | 2025.06.15 |
알고리즘이란 무엇인가요? (0) | 2025.06.15 |