上一篇讲了sort函数的用法,现在讲讲库函数qsort的用法,qsort是快速排序的库函数,包含头文件#include”stdlib.h”,其函数原型如下:
void qsort(void *base,int nelem,int width,int(*fcmp)(const void *,const void*));
各参数代表的含义是:
1:待排序数组首地址; 2:数值中待排序元素数量;
3:各元素的占用空间大小;4:指向函数的指针(实际运用中函数名就是函数指针)。
下面按照数组元素的数据类型分类讲解qsort函数的用法。针对不同应用场景选用合适的cmp函数,可以快速简便的实现排序。
A:整型数据
#include "iostream"
#include "stdlib.h"
using namespace std;
int cmp(const void*a,const void*b)//降序,qsort函数默认升序,而实现升序规则只需调换成a-b的形式即可
{
return *(int*)b-*(int*)a;
}
int main()
{
int a[6]={1,2,3,4,5,6},i;
qsort(a,6,sizeof(int),cmp); // a是被排序的数组 6是排序元素的个数
//sizeof(int)是每个元素所占的字节数 cmp是