Bubble Sort Algorism & Flow Chart
2008. 9. 19. 02:39ㆍStudy
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