|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <iostream>
- #include <algorithm>
- using namespace std;
- const int MAX = 10001;
- struct node
- {
- int date; //数值
- int rank; //排名
- int index; //下标
- };
- node a[MAX];
- bool comp1(node x, node y)
- {
- return x.date < y.date; //自定义比较函数
- }
- bool comp2(node x, node y)
- {
- return x.index < y.index; //自定义比较函数
- }
- int main()
- {
- int n;
- cin >> n;
- for (int i = 1; i <= n; i++)
- {
- cin >> a[i].date;
- a[i].index = i;
- }
- sort(a + 1, a + 1 + n, comp1); //根据数值排序,求rank
- for (int i = 1; i <= n; i++)
- {
- a[i].rank = i;
- }
- sort(a + 1, a + 1 + n, comp2); //根据下标排序,回到原顺序
- for (int i = 1; i <= n; i++)
- {
- cout << a[i].rank << " ";
- }
- return 0;
- }
复制代码 |
|