首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么排序一个数组,得到新数组,并得到新数组每个元素在原数组的下标

2012-03-30 
如何排序一个数组,得到新数组,并得到新数组每个元素在原数组的下标?假如一个数组a[6]{1,1,4,2,3,2,1}用

如何排序一个数组,得到新数组,并得到新数组每个元素在原数组的下标?
假如一个数组a[6]={1,1,4,2,3,2,1};用一种排序方法(最好用堆排序或归并排序等复杂度低一些的方法,因为实际的数组a很大)得到一个新的排序后的数组b[6]={1,1,1,2,2,3,4};有什么办法知道b数组中的元素在a数组中下标的位置?


[解决办法]

C/C++ code
#include <iostream>#include <algorithm>using namespace std;struct node{    int num;    int index;}r[100];bool cmp(node x, node y){    return x.num < y.num ? true:false;}int main(){    int a[]={1, 1, 4, 2, 3, 2, 1};    int n = sizeof(a)/sizeof(int);        for (int i=0; i < n; ++i)    {        r[i].num = a[i];        r[i].index = i;    }    sort(r, r + n, cmp);        return 0;} 

热点排行