1167.数组排序
- 题目描述:
-
输入一个数组的值,求出各个值从小到大排序后的次序。
- 输入:
-
输入有多组数据。
每组输入的第一个数为数组的长度n(1<=n<=10000),后面的数为数组中的值,以空格分割。
- 输出:
-
各输入的值按从小到大排列的次序(最后一个数字后面没有空格)。
- 样例输入:
-
4 -3 75 12 -3
- 样例输出:
-
1 3 2 1
- 来源:
- 2009年北京航空航天大学计算机研究生机试真题
-
#include<iostream> #include<algorithm> using namespace std; int main() { int n; while(cin>>n) { int a[10000]; int b[10000]; int c[10000]; int tin=0; int d=0; int tag[10000]={0}; for(int i=0;i<n;i++) { cin>>a[i]; b[i]=a[i]; } sort(a,a+n); c[d++]=a[0]; for(int i=1;i<n;i++) { if(a[i]!=a[i-1]) { c[d++]=a[i]; } } for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { if(b[i]==c[j]) { tag[tin++]=j; break; } } } for(int i=0;i<n-1;i++) { cout<<tag[i]+1<<" "; } cout<<tag[n-1]+1<<endl; } return 0; }