728x90
- <헤더파일>
stdlib.h
- <기본형태>
void qsort (void *base, size_t nel, size_t width, int (*compare)(const void *, const void *)
base = 정렬하고자 하는 배열의 포인터
nel = 배열의 각 원소들의 총 수
width = 배열에서 원소 하나의 크기
(*compare) = 비교를 수행할 함수 포인터
- <비교함수>
비교함수는 -1, 0, 1 중 하나 반환해야한다.
오름차순 비교함수만든 예제코드)
int compare(const void *first, const void *second)
{
if (*(int*)first > *(int*)second)
return (1);
else if (*(int*)first < *(int*)second)
return (-1);
else
return (0);
}
- <qsort 예제 함수>
오름차순 비교함수를 이용해서 qsort함수 구현
#include <stdio.h>
#include <stdlib.h>
int compare(const void *first, const void *second)
{
if (*(int*)first > *(int*)second)
return (1);
else if (*(int*)first < *(int*)second)
return (-1);
else
return (0);
}
int main()
{
int i;
int arr[7] = {1, 4, 30, 5, 10, 22, 56};
// 정렬 전
i = 0;
while (i < 7)
{
printf("%d ", arr[i]);
i++;
}
printf("\n");
// 정렬 후
qsort(arr, 7, sizeof(int), compare);
i = 0;
while (i < 7)
{
printf("%d ", arr[i]);
i++;
}
return (0);
}
위의 결과
첫번째 줄은 qsort함수 사용전
두번쨰 줄은 qsort함수 사용해서 오름차순으로 정렬한 결과
728x90
'backjoon > 여러가지' 카테고리의 다른 글
백준 1934 최소공배수 c언어 (0) | 2023.01.29 |
---|---|
유클리드 호제법 c언어 구현하기 (0) | 2023.01.29 |
백준 1037 약수 c언어 (0) | 2023.01.28 |
백준 5086 c언어 (0) | 2023.01.27 |
백준 2556번 최대값 c언어 (0) | 2023.01.23 |
댓글