Mar 17
qsort包含在<stdlib.h>头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序。排序之后的结果仍然放在原数组中。使用qsort函数必须自己写一个比较函数。
函数原型:
void qsort (void *base,size_t num,size_t size , int (* comparator)(const void * , const void *));
用法以及参数说明:
Base:数组起始地址;
num:数组元素个数;
size:每一个元素的大小;
comparator:函数指针,指向比较函数;
1、比较函数要接受两个参数,一般要转换成要比较数据的类型;
2、比较函数的返回值要反映两个参数是大于,等于还是小于的关系,分别用一个正数,0和一个负数表示。
在比较函数中以第一个参数和第二个参数比较则是从小到大排序。反过来则是从大到小排序。看下面的例子:
对int类型数组排序
int num[100];
int cmp ( const void *a , const void *b )
{
return *(int *)a - *(int *)b;
}
qsort(num,100,sizeof(num[0]),cmp);