很久之前看到了 lrj用到了这个技巧,今天才来验证了一下 , b为下表,在保证 a数组不变的额情况下知道 a数组的顺序。
代码如下
#include <cstring> #include <vector> #include <list> #include <map> #include <set> #include <deque> #include <stack> #include <bitset> #include <algorithm> #include <functional> #include <numeric> #include <utility> #include <sstream> #include <iostream> #include <iomanip> #include <cstdio> #include <cmath> #include <cstdlib> #include <ctime> #include <memory.h> #include <cassert> using namespace std; int a[10000]; int b[10000]; bool cmp(int c, int b) { return a[c] < a[b]; } int main(){ int n; scanf("%d",&n); for(int i = 1;i <= n;i ++) scanf("%d",&a[i]); for(int j = 1;j <= n;j ++) b[j] = j ; sort(b+1,b+n+1,cmp); for(int j = 1;j <= n;j ++) printf("%d ",b[j]); printf("\n"); return 0 ; }
时间: 2024-10-18 20:14:21