#include<stdio.h>
#define MAX_SIZE 10
#define SWAP(x, y, t) ((t) = (x), (x) = (y), (y) = (t))
int list[MAX_SIZE] = { -25,23,4,5,-77,43,97,18,96,-95 };
void prn_sort(int list[], int n);
void bubble_sort(int list[], int n);
void main() {
int n = MAX_SIZE;
printf("\n-----정렬 전 데이터-----\n");
prn_sort(list, n);
bubble_sort(list, n);
printf("\n-----정렬 후 데이터-----\n");
prn_sort(list, n);
}
void bubble_sort(int list[], int n) {
printf("\n-----버블 정렬 시작-----\n");
int i, j, temp, exchg;
// 정렬이 끝난 뒷쪽은 비교 X
for (i = n - 1; i > 0; i--) {
// 정렬이 일어났는지 확인하기 위한 변수
exchg = 0;
for (j = 0; j < i; j++) {
if (list[j] > list[j + 1]) {
SWAP(list[j], list[j + 1], temp);
exchg++;
}
}
// 버블 정렬이 중간에 완료되면 종료
if (exchg == 0)
break;
prn_sort(list, n);
}
printf("-----버블 정렬 종료-----\n");
}
void prn_sort(int list[], int n) {
for (int i = 0; i < n; i++)
printf("%d ", list[i]);
printf("\n");
}