qsort 更为通用,但是比较慢,比较函数相当难理解
sort 快,比较函数好理解
下面的实验室要a降序排列
int qCmp(const void * a,const void *b) {
int a1 = *(int *)a;
int b1 = *(int *)b;
if(a1 >b1)
return -1;
if(a1<b1)
return 1;
return 0;
}
bool sCmp(int a,int b) {
if (a >b)
return true;
return false;
}
int a[5] = {32,321,45,456,6};
//qsort(a,5,sizeof(int),qCmp);
sort(a,a+5,sCmp);
for (int i = 0; i<5;++i)
cout<<a[i]<<" ";
cout<<endl;
1. qsort的比较函数,传的参数是两个指向数组元素的指针
qsort默认是升序排列
所以在原理上要和sort的比较函数相反
2. sort的比较函数
元素a在b的前面,如果a>b,满足降序,返回true,就是不需要调序