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);