1、一维数组
int cmp(const void *p1, const void *p2)
{
return *(int *)p1 > *(int *)p2;
}
qsort(nums, len, sizeof(int), cmp);
2、二维数组
int cmp(const void *p1, const void *p2)
{
int *p11 = *(int **)p1;
int *p22 = *(int **)p2;
if (p11[0] == p22[0]) {
return p11[1] > p22[1];
}
return p11[0] > p22[0];
}
3、结构体
按照日期排序
typedef struct {
int year;
int month;
int day;
} Date;
int cmp(const void *p1, const void *p2)
{
Date *p11 = (Date *)p1;
Date *p22 = (Date *)p2;
if (p11->year != p22->year) {
return p11->year > p22->year;
} else if (p11->month != p22->month) {
return p11->month > p22->month;
}
return p11->day> p22->day;
}
qsort(data, 5, sizeof(Date), cmp);