C언어 알고리즘
<C언어 알고리즘> qsort() 함수를 사용한 퀵정렬
우현짱짱
2023. 10. 15. 05:24
기본 자료형을 사용한 오름차순 정렬
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int compare(const void *x,const void *y)
{
return *(int *)x>*(int *)y?1:-1;
}
int main(void)
{
int N=10, arr[10];
srand((unsigned)time(NULL));
for(int n=0;n<N;++n)
arr[n]=rand()%100;
qsort((void *)arr,(size_t)N,sizeof(int),compare);
for(int n=0;n<N;++n)
printf("%d ", arr[n]);
return 0;
}
구조체를 사용한 오름차순 정렬
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
typedef struct
{
int primary, secondary;
}
dimension;
int compare(const void *x,const void *y)
{
return ((dimension *)x)->primary<((dimension *)y)->primary?-1:((dimension *)x)->primary>((dimension *)y)->primary?1:((dimension *)x)->secondary<((dimension *)y)->secondary?-1:1;
}
int main(void)
{
int N=30;
dimension arr[30];
srand((unsigned)time(NULL));
for(int n=0;n<N;++n)
{
arr[n].primary=rand()%5;
arr[n].secondary=rand()%5;
}
qsort((void *)arr,(size_t)N,sizeof(dimension),compare);
for(int n=0;n<N;++n)
printf("%d %d\n", arr[n].primary, arr[n].secondary);
return 0;
}
728x90