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; 
}

 

posted @ 2018-10-01 17:34  bernieloveslife  阅读(237)  评论(0编辑  收藏  举报