버블정렬에 대해 설명해보세요.
void quicksort(int a[], int left, int right) int i, j, m, p, t; if(left < right) p = a[right]; for(i=left-1, j = right; ;) while(a[++i] < p); while(a[--j] > p); if(i>j) break; swap(&a[i], &a[j], t);
a[right] = a[i]; a[i] = p; quicksort(a, left, j); quicksort(a , i+1, right); |
- 버블정렬(Bubble sort)
일반적으로 사용되는 분류 알고리즘(sorting algorithm)이지만, 알고리즘이 수중의 「거품」과 움직임이 유사하기 때문에 이러한 이름이 붙여졌다. 이 말은 인접한 레코드의 키를 비교해서 그 결과 순서화되어 있지 않으면 교환하는 방식이다.
[버블정렬 예시]
void bubble_sort(element list[], int n) int i, j; element next; for(i = n-1; i > 0; i--) for(j = 0; j < i; j++) if(list[j] > list[j + 1] swap(list[j], list[j + 1]);
|
▲ 버블정렬 결과
버블정렬의 장단점
(1) 장점
- 인접해 있는 두 개의 값을 비교하여 자료의 위치를 이동시키므로 단순하다.
- 여러 차례 값을 비교하므로 안전성 있게 값을 정렬한다.
(2) 단점
- 다른 정렬에 비해서 연산시간이 오래 걸린다.
커뮤니티 Q&A
위 이론과 관련된 게시글이에요.
이해가 안 되거나 궁금한 점이 있다면 커뮤니티에 질문해 보세요!
게시글 작성하기