기본 자료형을 사용한 오름차순 정렬

#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

+ Recent posts