头文件:
#include<cstdlib>
cmp函数:
1. 比较单个字符:
int cmp(const void* a,const void* b)
{
return*(char*)a-*(char*)b;
}
2. 比较字符串:
intcmp(const void *a,const void *b)
{
char* cha=(char*)a;
char* chb=(char*)b;
return strcmp(cha,chb);
}
3. 比较int型:
intcmp(const void* a,const void*b)
{
return *(int*)a-*(int*)b;
}
4. 比较double型:
int cmp(const void *a , const void *b )
{
return *(double *)a > *(double *)b ? 1 :-1;
}
5. 结构体一级比较:
struct In
{
double data;
int other;
} s[100]
int cmp(const void *a ,const void *b)
{
return (*(In *)a)->data > (*(In*)b)->data ? 1 : -1;
}
6. 结构体二级比较:
struct In
{
int x;
int y;
} s[100];
int cmp( constvoid *a , const void *b )
{
struct In *c = (In *)a;
struct In *d = (In *)b;
if(c->x != d->x) return c->x -d->x;
else return d->y - c->y;
}
qsort(数组名,比较元素个数,单个元素大小,cmp函数);