반응형
C언어를 이용해서 퀵 정렬을 하는 예제입니다.
#include <stdio.h>
#define N 10
void quick_sort(int a[], int left, int right)
{
int c, i, j, temp;
if (left < right) {
c = a[(left + right) / 2]; /* 중앙 값 */
i = left - 1;
j = right + 1;
while (1) {
while (a[++i] < c);
while (a[--j] > c);
if (i >= j) break;
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
quick_sort(a, left, i - 1);
quick_sort(a, j + 1, right);
}
}
void print(int a[], int size)
{
int i;
for (i = 0; i < size; i++)
printf("%4d", a[i]);
printf("\n");
}
int main(void)
{
int a[] = { 41,24,76,11,45,64,21,69,19,36 };
printf("정렬 전: "); print(a, 10);
quick_sort(a, 0, N - 1);
printf("정렬 후: "); print(a, 10);
return 0;
}
반응형
'C_C++' 카테고리의 다른 글
(C언어) 자료구조: 배열로 큐(Queue) 표현하기, 장점 단점 (0) | 2023.10.25 |
---|---|
(C언어) 원형 연결리스트 circular linked list (0) | 2023.10.13 |
(C언어) 지정된 폴더의 파일 목록 출력하기 (0) | 2023.07.10 |
(C/C++) 사칙연산 계산하기 (0) | 2023.07.09 |
(C언어) 두 개의 파일이 같은지 (다른지) 비교하기 (0) | 2023.06.23 |