버블정렬에 대해 설명해보세요.

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

이론과 관련된 게시글이에요.

이해가 안 되거나 궁금한 점이 있다면 커뮤니티에 질문해 보세요!

게시글 작성하기