一种排序

来源:互联网 发布:python帮助文档中文版 编辑:程序博客网 时间:2024/05/22 09:54
#include<iostream>#include<algorithm>using namespace std;typedef struct node{    int num,lon,wid;}node;bool cmp(node a,node b){    if(a.num!=b.num)        return a.num<b.num;    else if(a.num==b.num)        return a.lon<b.lon;    else        return a.wid<b.wid;}int main(){    int t,n,i,j;    node p[1005];    cin>>t;    while(t--){        cin>>n;        for(i=0;i<n;i++){            cin>>p[i].num>>p[i].lon>>p[i].wid;            if(p[i].lon<p[i].wid)                swap(p[i].lon,p[i].wid);        }        sort(p,p+n,cmp);        for(i=0;i<n;i++){            cout<<p[i].num<<" "<<p[i].lon<<" "<<p[i].wid<<endl;            for(j=i+1;j<n;j++)                if(p[i].num==p[j].num && p[i].lon==p[j].lon && p[i].wid==p[j].wid)                    ;                else                    break;            i=j-1;        }    }    return 0;}


开始看题的时候,想着还去用直接的笨方法,先比较编号,再比较长,再比较宽,最后去重,后来又想到 cmp() 的排序规则,直接就能把这些事都一下子 sort() 完成。瞬间心情愉快了很多 ^_^



0 0
原创粉丝点击