新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
因为cmp在传入qsort的时候迟碰是作为函数指针传入的,qsort在调用cmp(就是“回调函数”)的时候团山会传入合适的参数。
网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、小程序设计、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了安化免费建站欢迎大家使用!
*(int*)a是因为:a是个void *类型,塌旦中要先用(int*)将它转成int*类型,然后再用*取值,变成int类型,才能比较大小。
1、cmp 是 compare,比较的缩写。
2、strcmp是C语言中头文件string.h(字符串函数)中定义的一个用于对两组字符串进行比较的函数,它的返回值是int类型。
假设有两组字符串cs和ct,当csct时,函数返回一个负数;当cs==ct时,函数返回0;当凯圆轮csct时,函数返回一个正数。
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:"A""B" ,"a""腔者A" ,"computer""compare" ,"comput""comp"
strcmp函数原型为:盯信int strcmp(const char *s1,const char * s2);
在stdlib.h头文件中。
有qsort()
//快速排序
qsort函数,也就是快速排悔迟序算法,在C的
库中,需加入头文件#include
或#include
。
调用qsort函数需要写cmp比较档前饥函数。
给出按升序排列的例子:
int
cmp(const
void*
a,
const
void*
b)//注意这里是int{return
(int*)a
-
(int*)b;}
调用:
qsort(a,
n,
sizeof(int),
cmp);//a为行返数组,n为个数
如果需要按照自己的意愿排列,那么同样重写cmp比较函数,就可以完成,和sort函数类似。时间复杂度为O(n
log
n),但是某些情况要比sort函数好。