Bubble Sort Algorism & Flow Chart

2008. 9. 19. 02:39Study


Bubble Sort는 많이 알려진 알고리즘으로 인접해 있는 두 개의 값을 비교해서 자료 교환을 하는 방식이다. 오름차순 정렬은 두 개의 값을 비교해서 큰 값을 오른쪽으로 보내는 방식이며 내림차순 정렬은 두 개의 값을 비교해서 작은 값을 오른쪽으로 보내는 방식이다.

인접해 있는 두 개의 값을 비교하여 자료의 위치를 이동시키므로 단순하고 여러 차례 값을 비교하므로 안전성 있게 값을 정렬한다는 장점이 있다.

그러나 첫 번째 패스에서 자료의 교환이 없었다면 주어진 값은 이미 오름차순으로 정렬된 상태이지만 최대 N(N-1)/2만큼의 비교회수와 O(N²) 만큼의 연산시간이 소요되며 다른 정렬에 비해 연산시간이 오래 걸린다는 단점이 있다.

Bubble Sort의 소스코드 예

void Bubble_Sort(int*pDate, int Count)

{

int i,j,temp = 0;

int comparison_count = 0;

for(i=0; i < Count -1; ++i)

{

for(j = 0; j < Count -1 -i; ++j)

{

**comparison_count;

if( pData[j] > pData[j +1] )

{

temp = parm_data[j];

pData[j] = pDataj +1];

pData[j + 1] = temp;

}

}

}

}



flowchart



또다른 Flowchart