C_C++
(C언어) qsort 함수를 이용한 숫자 정렬
enjoy-country-life
2022. 10. 4. 16:12
반응형
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);
}
반응형