qsort的用法:
包含在头文件<stdlib.h>里
void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void*, const void*))
举个例子,对int(a[0],a[9])进行排序:
qsort(a, 10, sizeof(int),cmp);
其中cmp必须为int,举例写法如下:
int cmp(const void* a, const void* b) {
return (*(int*)a - *(int*)b);
}
double类型排序:
int cmp(const void* a, const void* b) {
if (*(double*)a > *(double*)b)
return 1;
else if (*(double*)a < *(double*)b)
return -1;
else return 0;
}
结构体排序:(注意括号)
int cmp(const void* A, const void* B) {
return (*(struct node*)A).num - (*(struct node*)B).num ;
}
取一个结构体的数据大小时可以用sizeof(a[0])
参考资料:
https://www.runoob.com/cprogramming/c-function-qsort.html
https://blog.csdn.net/qq_43749739/article/details/87381277