今天分享一下c语言库函数自带的函数qsort()
qsort()
使用前需要引用stdlib.h头文件
include<stdlib.h>
qsort()函数是快速排序的函数
参数说明:
void qsort (
void* base, //要排序的目标数组
size_t num, //待排序的元素个数
size_t width, //一个元素的大小,单位是字节
int(*cmp)(const void* e1, const void* e2)
);
其中void*:无具体类型的指针 能够接收任意类型的地址
缺点:不能进行运算。不能±整数,不能解引用
其中cmp是函数指针,cmp指向的是:排序时,用来比较两个元素的函数。需要自己编写。
cmp函数:
这里以整型为例:
int cmp_int(const *void e1,const *void e2){
return *(int*)e1 - *(int*)e2;
}//注意:
1.比较函数的参数类型为void* ,我们要进行强制类型转换!且要解引用才能得到对应的值!
2.若我们想排成降序,只需要写成e2-e1即可
完整代码:
int cmp_int(const *void e1,const *void e2){
return *(int*)e1 - *(int*)e2;
}
int MajorityElement(int *nums , int numsSize){
qsort(nums, numsSize, sizeof(int),cmp_int);
for(int i; i<numsSize; i++){
printf("%d",nums[i]);
}
}