解题思路:
我的解题思路比较简单,就是建立两个数组数组A和数组B,数组B用来保存数组A的值
对数组B的值进行快排,这样子能让数组B进行从小到大进行排序,同时也就是对应数组A下标
例如数组a[4]={0,3,1,2}
b[4]={0,1,2,3};
这样子我们对1,3,2三个数进行排序,B数组就能保存A数组元素的第几大小了
接下来我们就可以运用两个for循环进行数组下标的输出了
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(a[i]==b[j]){ cout<<j<<" "; break; }
注意事项:因为下标排序是从1开始的,所有快速排序时需要排序到n+1;
参考代码:
#include <iostream> #include <algorithm> using namespace std; int main(){ int a[1001]={0},b[1001]={0}; int n; while(cin>>n){ for(int i=1;i<=n;i++){ cin>>a[i]; b[i]=a[i]; } sort(b,b+n+1); //下标是从1开始的 for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(a[i]==b[j]){ cout<<j<<" "; break; //如果找到就直接退出 } cout<<endl; } return 0; }
0.0分
10 人评分
母牛的故事 (C语言代码)浏览:712 |
校门外的树 (C语言代码)浏览:1166 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:591 |
C二级辅导-同因查找 (C语言代码)浏览:626 |
C语言训练-排序问题<1> (C语言代码)浏览:636 |
A+B for Input-Output Practice (IV) (C语言代码)浏览:484 |
C语言训练-求函数值 (C语言代码)浏览:600 |
WU-蓝桥杯算法提高VIP-企业奖金发放 (C++代码)浏览:1268 |
DNA (C语言描述,数据结构)浏览:909 |
循环入门练习6 (C语言代码)浏览:1058 |