728x90
728x170
*qosrt 함수 : 퀵 정렬 라이브러리 함수
- C에서 제공하는 퀵 정렬 표준 라이브러리 함수
- 사용하려면 <stdlib.h> 헤더 파일을 불러와야 한다.
void qsort(void *base, int num, int width, int (*compare)(const void *, const void *));
base
: 배열의 시작 주소num
: 배열 요소의 개수width
: 배열 요소 하나의 크기(바이트 단위)compare
- 비교 함수
- 포인터를 통하여 두 개의 요소를 비교하여 비교 결과를 정수로 반환
- 사용자가 제공해야 함.
- 반환값
< 0
: elem1이 elem2보다 작으면0
: elem1이 elem2와 같으면> 0
: elem1이 elem2보다 크면
- 사용 예
#include <stdio.h>
#include <stdlib.h> // qsort()
int compare(const void *arg1, const void *arg2) {
if (*(double*)arg1 > *(double*)arg2) return 1;
else if (*(double*)arg1 < *(double*)arg2) return -1;
else return 0;
}
void main() {
int i;
double list[9] = {2.1, 0.9, 1.6, 3.8, 1.2, 4.4, 6.2, 9.1, 7.7};
qsort((void*)list, 9, sizeof(double), compare);
for (i = 0; i < 9; i++) {
printf("%4.1f ", list[i]);
}
}
0.9 1.2 1.6 2.1 3.8 4.4 6.2 7.7 9.1 |
728x90
그리드형(광고전용)
'Programming > C' 카테고리의 다른 글
배열의 유형 및 선언 방법 (0) | 2021.05.08 |
---|---|
[C] 배열의 크기를 입력 받아 해당 크기의 배열 생성하기 (동적 할당) (0) | 2017.10.06 |
system 함수 : cls. pause (0) | 2017.09.22 |
실행 시간 측정 (clock() 이용) (0) | 2017.09.01 |
goto문 (0) | 2017.09.01 |
scanf와 ' '(공백) (0) | 2017.08.31 |
C 핵심 내용 정리 (0) | 2017.05.03 |
포인터 정리 (Arrangement of Single Pointer) in C (0) | 2017.04.17 |