快排的两种调用:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;
int a[10000];
bool cmp(int a,int b) //sort
{
return a>b;
}
int main()
{
int n,i;
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
sort(a,a+n,cmp);
for(i=0;i<n;i++)
cout<<a[i]<<" ";
return 0;
}
int cmp(const void *a,const void *b) //qsort
{
return *(int *)a-*(int *)b;
}
int main()
{
int n,i;
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
qsort(&a[1],n,sizeof(a[1]),cmp);
for(i=1;i<=n;i++)
cout<<a[i]<<" ";
return 0;
}
结构体三级排序:
int cmp(Node c, Node d)
{
if(c.money!=d.money)
return c.money > d.money; //从大到小
else if(c.bag!=d.bag)
return c.bag > d.bag;
else
return c.num < d.num; //从小到大
}
sort(node,node+n,cmp);