函数原型:
void qsort(void *base, size_t nitems, size_t size, int (*cmp)(const void *, const void*))
举例:qsort(arr, arrsize, sizeof(int),cmp)
参数说明:
-
base-- 指向要排序的数组的第一个元素的指针。
-
nitems-- 由 base 指向的数组中元素的个数。
-
size-- 数组中每个元素的大小,以字节为单位。
-
cmp-- 用来比较两个元素的函数,即函数指针(回调函数)
cmp函数:
int cmp(const void*a, const void*b)
{
return *(int*)a - *(int*)b; //从小到大
}
//b-a则是从大到小
结构体举例:
//结构体定义
typedef struct {
char str;
int num;
}strn;
//cmp函数
int cmp(const void *a, const void *b)
{
return ((strn *)b)->num - ((strn *)a)->num;
}
//结构体定义使用
strn st[26];
memset(st, 0, sizeof(strn)*26);
//排序函数
qsort(st, 26, sizeof(strn), cmp);