#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]);

	}

}

 

+ Recent posts