C语言快排函数qsort()

眉间皱痕 提交于 2019-12-30 02:51:13

今天刷leetcode的时候发现有个题解中写了这个函数,然后我看他没定义这个函数就直接用了,然后就搜了一下,后来发现这个函数就是c的库函数,他在stdlib.h中,共有四个参数,没有返回值。
函数原型:

int (*cmp)(const void *,const void *);
qsort(*s,n,sizeof(s[0],cmp));

这里s是需要排序的数组的首地址,n是需要排序的元素个数,sizeof就是每一个元素占的空间的大小,只想函数的指针,用来确定排序的顺序。
然后cmp函数写法为:

int cmp(const void *a,const void *b)
{
	return *(int *)a-*(int *)b;//从小到大排序
	//return *(int *b)-*(int *)a;由大到小排序
}

此处cmp函数的返回值,<0(不进行置换),>0(进行置换),0(不进行置换)。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!