1. sort中cmp的参数类型为值,返回类型为bool,比较过程用>和<,升序为a<b,降序为a>b
bool cmp(constint &a, constint &b){
return a>b; }int a[10]; sort(a,a+10,cmp);
- 整型数据比较
bool cmp(int a,int b){
return a < b;
}
int a[10];
sort(a,a+10,cmp);
- 1
- 2
- 3
- 4
- 5
- 实型数据比较
bool cmp(float a,float b){
return a < b;
}
int a[10];
sort(a,a+10,cmp);
2. qsort中cmp的参数类型为const void*,返回类型为int,升序为a-b,降序为b-a
举例:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int cmp(const void* a,const void* b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int c,n,i,a[10];
scanf("%d",&c);
while(c--)
{
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
qsort(a,n,sizeof(int),cmp);
for(i=0;i<n;i++)
printf("%d\n",a[i]);
}
return 0;
}
C中qsort中的cmp()与sort的cmp()对比(以int为例)
名称 | 返回值类型 | 语句 |
---|---|---|
qsort(c) | int | return a - b |
sort(c++) | bool |
return a < b
|