Algorithm

Bubble Sort

다크엔지니어 2020. 3. 3. 15:08
반응형

Select Sort 에 이어서 Bubble Sort 를 구현해 보았다.

Bubble Sort 는 말그대로 Bubble 처럼 n, n+1 을 Compare 하여 Sort 한다.

본인은 오름차순 정렬을 하여 첫 번째 for 문 이 큰 수 에서 점차 줄어드는 형식이다.

그 이유는 이중 for문을 다돌면 오름차순 이므로 n, n+1끼리 비교하여 가장 큰 수는 -> 방향으로 이동하게 된다.

그래서 첫 번째 for 문은 하나씩 줄여간다.

 

설명에서 느끼다 싶이 시간복잡도가 높다.. Select Sort 보다도...

장점을 말하자면 구현이 비교적 간단하다. Select Sort 와 비슷한 구현정도랄까

단점은 Select Sort 보다도 복잡도가 높으며, 그렇게 실용성이 있는 방식은 아니다.

 

아래는 Visual Studio 코딩 구현이다.

#include <stdio.h>

#define DATA_SIZE 10

int main(void)
{
	int data[DATA_SIZE] = { 41, 2, 3, 51, 34, 22, 20, 27, 55, 10 };
	int i, j, temp;

	for (i = DATA_SIZE -1; i > 0; i--)
	{
		for (j = 0; j < i; j++)
		{
			if (data[j] > data[j+1])
			{
				temp = data[j];
				data[j] = data[j + 1];
				data[j + 1] = temp;
			}
		}
	}

	for (i = 0; i < DATA_SIZE; i++)
	{
		printf("%3d", data[i]);
	}
	printf("\n");

	getchar();

	return 0;
}
반응형