버블정렬 알고리즘 (BubbleSort Algorithm)
- 서로 인접한 두 원소를 비교한 뒤 조건이 맞으면 교환한다.
- 이것을 1회전 완료하면 정렬된 원소 1개가 나온다.
- 이를 n -1 번 반복하면 모든 원소가 정렬된다.
Code
#include <stdio.h>
void bubbleSort(int arr[], int length) { // 배열괴 배열의 길이를 받는다
int temp = 0; // 임시 저장공간
for (int i = 0; i < length - 1; i++) { // 대회전을 n -1번 반복한다. ( n == 원소의 개수)
for (int j = 0; j < length - i - 1; j++) { // j : 0 ~ 배열의 마지막 - 1 (1 회전 기준)
if (arr[j] > arr[j + 1]) { // 서로 인접한 두 원소 비교
// 참이면 교환
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = { 5, 7, 1, 2, 8, 9, 10 };
bubbleSort(arr, 7);
// 결과 출력
printf("정렬된 결과: [");
for (int i = 0; i < 7; i++) {
printf("%d ", arr[i]);
printf(" ");
}
printf("]");
return 0;
}
☜
시간복잡도 : O(n^2)
'알고리즘' 카테고리의 다른 글
stack (0) | 2023.04.28 |
---|---|
quick sort (0) | 2023.04.20 |
삽입 정렬 알고리즘 (0) | 2023.04.12 |
선택 정렬 알고리즘 (0) | 2023.04.11 |
재귀호출 (0) | 2023.04.04 |