/* 返回顶部 */

qsort in C

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

posted @ 2021-10-13 15:14  Mogeko  阅读(64)  评论(0编辑  收藏  举报