离散化基础 输出排序后的编号

来源:互联网 发布:淘宝店代理的发货流程 编辑:程序博客网 时间:2024/05/21 06:20

输出每个数的排名

/*书籍《CCF 中学生计算机程序设计》 江涛 等58 2 6 9 4*/#include<iostream>#include<algorithm>using namespace std;struct tNode{int data,//数值 rank,//排名 index;//下标 }; int N;tNode a[10001];//自定义规则排序 bool cmpdata(tNode x,tNode y){return x.data<y.data;} bool cmpindex(tNode x,tNode y){return x.index<y.index;}int main(){cin>>N;//输入数据并记下下标 //值:  8 2 6 9 4//下标:0 1 2 3 4 for(int i=0;i<N;i++){cin>>a[i].data;a[i].index=i;}//根据值排序,并记下排名 // 值: 2 4 6 8 9//排名:1 2 3 4 5 sort(a,a+N,cmpdata);for(int i=0;i<N;i++){a[i].rank=i+1;}//根据下标排序,输出结果 //0 1 2 3 4对应 8 2 6 9 4输出排名4 1 3 5 2 sort(a,a+N,cmpindex);for(int i=0;i<N;i++){cout<<a[i].rank<<" ";}cout<<endl;}


0 0