C語言sort排序
阿新 • • 發佈:2021-01-31
sort排序結構體及sort降序排序
<寫給自己看的>
#include<bits/stdc++.h>
using namespace std;
struct object{
int a;
int b;
int c;
}sth[5];
int x[5];
int cmp1(object x,object y){
if(x.a==y.a){
if(x.b==y.b){
return x.c>y.c;
}
else return x.b>y.b;
}
else return x.a>y.a;
}//優先按a從大到小排,其次按b從大到小排,最次按c從大到小排
int cmp2(int a,int b){
return a>b;
}//從大到小排
int main(){
sth[0].a=1,sth[0].b=3,sth[0].c=3;
sth[1].a=5,sth[1].b=1,sth[1].c=4;
sth[2].a=1,sth[2].b=6,sth[2].c=5;
sth[3].a=4,sth[3].b=3,sth[3].c=7;
sth[4].a=1,sth[4].b=3,sth[4].c=1;
for(int i=0;i<5;i++)
{
printf("%d %d %d\n",sth[i].a,sth[i].b,sth[i].c);
}//輸出原始
printf("\n");
sort(sth,sth+5,cmp1);
for(int i=0;i<5;i++)
{
printf("%d %d %d\n",sth[i].a,sth[i].b,sth[i].c);
}//排序後
printf("\n");
x[0]=5,x[1]=3,x[2]=4,x[3]=1,x[4] =2;
for(int i=0;i<5;i++)
{
printf("%d ",x[i]);
}
printf("\n");//輸出原始
sort(x,x+5);
for(int i=0;i<5;i++)
{
printf("%d ",x[i]);
}
printf("\n");
sort(x,x+5,cmp2);
for(int i=0;i<5;i++)
{
printf("%d ",x[i]);
}//排序後
return 0;
}
配上執行圖