#include <stdio.h>
#define MAX_COUNT 10
void bubblesort(int arry[] , int cnt)
{
int step = 0, i = 0, temp = 0, comparison=0;
char flag = 0;
for (step = 0; step < cnt -1 ; step++) //총 비교 단계는 항목 -1
{
for (i = 0; i < cnt - step - 1; i++)//단계별로 비교 횟수 =항목의 개수 -1 - 단계 (단계가 증가할수록 비교횟수는줄어드니깐)
{
if (arry[i] > arry[i + 1])
{
flag = 1; //값이 바뀌었다면 1로 값을줌.
temp = arry[i];
arry[i] = arry[i + 1];
arry[i + 1] = temp;
comparison++;//몇번 비교했는지
}
}
if (flag == 0)break; //만약 비교시 비교 안되었다면 구문 종료.
}
printf("\n\n compare %d\n", comparison);
}
void main()
{
int data[MAX_COUNT] = {2,7,1,5,4,11,8,9,21,22};
printf("\n버블정렬 하기전\n");
for (int i = 0; i <MAX_COUNT ; i++)
{
printf(" %d ", data[i]);
}
bubblesort(data, MAX_COUNT);
printf("\n버블정렬 한 후\n");
for (int i = 0; i < MAX_COUNT; i++)
{
printf(" %d ", data[i]);
}
}