手打的结构体的排序(会用sort就是想要手写试一试)
#include <iostream>
#include <algorithm>
using namespace std;
struct person{
int no;
int age;
int height;
};
bool cmp(person a,person b)
{
if(a.no>b.no) return 0;
else if(a.no<b.no) return 1;
else{
if(a.age>b.age) return 0;
else if(a.age<b.age) return 1;
else{
if(a.height>b.height) return 0;
else if(a.height<b.height) return 1;
}
}
return 1;
}
void swap(person a,person b)
{
person c=a;
a=b;
b=c;
}
void person_sort(person a[],int l,int r)
{
person mid=a[(l+r)/2];
int i=l,j=r;
do{
while(cmp(a[i],mid)) i++;
while(cmp(mid,a[j])) j--;
if(i<=j)
{
swap(a[i],a[j]);
i++;
j--;
}
}while(i<=j);
if(l<j) person_sort(a,l,j);
if(i<r) person_sort(a,i,r);
}
int main()
{
int n;
cin>>n;
struct person a[100];
for(int i=1;i<=n;i++)
cin>>a[i].no>>a[i].age>>a[i].height;
person_sort(a,1,n);
for(int i=1;i<=n;i++)
cout<<a[i].no<<" "<<a[i].age<<" "<<a[i].height<<endl;
return 0;
}