반응형
qsort 함수를 이용한 숫자(정수) 정렬
오름차순 정렬(ascending sort)입니다. 아래쪽에 내림차순 정렬(descending sort)하는 방법이 설명되어 있습니다.
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int compare(const void* arg1, const void* arg2);
void print(int arr[], int size)
{
int i;
for (i = 0; i < size; i++)
printf("%d ", arr[i]);
printf("\n");
}
int main(int argc, char** argv)
{
int i;
int arr[10] = { 55,33,77,99,22,999,1,77,35,10 };
int size = 10;
print(arr, size);
/* Sort remaining args using Quicksort algorithm: */
qsort(arr, size, sizeof(int), compare);
/* Output sorted list: */
print(arr, size);
}
int compare(const void* arg1, const void* arg2)
{
return (*(int*)arg1 - *(int*)arg2); // 오름 차순 정렬 Ascending Sort
//return _stricmp(*(char**)arg1, *(char**)arg2);
}
compare 함수만 아래처럼 바꾸면 내림차순으로 정렬할 수 있습니다.
int compare(const void* arg1, const void* arg2)
{
return (*(int*)arg2 - *(int*)arg1); // 내림차순 정렬(Descending Sort)
// return (*(int*)arg1 - *(int*)arg2); // 오름차순 정렬(Ascending Sort)
//return _stricmp(*(char**)arg1, *(char**)arg2);
}
반응형
'C_C++' 카테고리의 다른 글
(C/C++)정수와 실수 형식의 자료형 (0) | 2022.10.05 |
---|---|
(C언어) 10진수를 2진수로 변환, 배열 이용 (0) | 2022.10.05 |
(C언어) 선택 정렬 Selection Sort (0) | 2022.10.02 |
(C언어) 버블 정렬 Bubble Sort (0) | 2022.10.02 |
(C언어) 로또 번호 생성: 중복되지 않은 수 (0) | 2022.10.02 |