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;
}반응형