数组排序后的序号c++
时间: 2024-03-25 21:42:02 浏览: 94
你可以使用C++的STL库中的`sort()`函数对数组进行排序,并使用另一个数组记录每个元素排序后的位置。以下是示例代码:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int arr[] = {4, 2, 8, 5, 1, 3, 9, 6, 7};
int n = sizeof(arr) / sizeof(arr[0]);
int pos[n];
for (int i = 0; i < n; i++) {
pos[i] = i; // 初始化位置数组
}
sort(pos, pos + n, [&](int i, int j) {
return arr[i] < arr[j]; // 根据元素大小排序位置数组
});
for (int i = 0; i < n; i++) {
cout << "arr[" << i << "] = " << arr[pos[i]]
<< ", pos = " << pos[i] << endl; // 输出排序后的元素和位置
}
return 0;
}
```
输出结果为:
```
arr[0] = 1, pos = 4
arr[1] = 2, pos = 1
arr[2] = 3, pos = 5
arr[3] = 4, pos = 0
arr[4] = 5, pos = 3
arr[5] = 6, pos = 7
arr[6] = 7, pos = 8
arr[7] = 8, pos = 2
arr[8] = 9, pos = 6
```
阅读全文