CS/알고리즘
버블 정렬(Bubble Sort) 알고리즘 예제와 설명
컨설턴트X
2023. 5. 10. 13:08
728x90
반응형
버블 정렬(Bubble Sort)은 인접한 두 원소를 비교하여 정렬하는 알고리즘 중 하나로, 간단하고 이해하기 쉽습니다.
아래는 C 언어로 구현한 버블 정렬 예제 코드입니다.
#include <stdio.h>
void bubble_sort(int arr[], int n) {
int i, j, temp;
for (i = n - 1; i > 0; i--) {
for (j = 0; j < i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {5, 2, 4, 6, 1, 3};
int n = sizeof(arr) / sizeof(int);
bubble_sort(arr, n);
int i;
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
위 코드에서 `bubble_sort` 함수는 버블 정렬을 구현한 함수이며, `arr`은 정렬하고자 하는 배열, `n`은 배열의 길이를 의미합니다.
버블 정렬의 구현 방식은 다음과 같습니다.
1. 배열의 마지막 인덱스부터 처음 인덱스까지 반복합니다.
2. 현재 인덱스와 다음 인덱스의 값을 비교하여, 만약 현재 인덱스의 값이 다음 인덱스의 값보다 크다면 두 값을 서로 바꿉니다.
3. 1부터 2까지 반복합니다.
이렇게 반복하면서 가장 큰 값이 배열의 마지막 인덱스로 이동하게 되어 정렬이 완료됩니다.
버블 정렬은 구현이 간단하고 이해하기 쉽지만, 시간 복잡도가 O(n^2)으로 비효율적입니다. 따라서 대용량 데이터의 정렬에는 다른 알고리즘을 사용하는 것이 좋습니다.
728x90
반응형