问个排序的问题

plpl574 2005-05-12 08:37:46
怎样按一维数组里的数据由大到小,顺序列出数据在数组里的序号?
...全文
117 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangbo1125 2005-05-12
  • 打赏
  • 举报
回复
怎样按一维数组里的数据由大到小,顺序列出数据在数组里的序号?

楼上的是不是理解错了。目的是顺序列出数据在数组里的序号?而不是要你改变数据在数组中的位置。

我建议用指针一定可以的。
flying_dancing 2005-05-12
  • 打赏
  • 举报
回复
//贴一个以前写的.. 冒泡的
#include <iostream>
using namespace std;

int main()
{
cout<<"输入数组个数."<<endl;
int n;
cin>>n;
int *a=new int [n];
int *b=new int [n];
for(int i=0;i<n;i++)
{
cin>>a[i];
b[i]=i+1;
}
for(i=0;i<n-1;i++)
for(int j=0;j<n-i;j++)
if(a[j]<a[j+1])
{
int temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
temp=b[j+1];
b[j+1]=b[j];
b[j]=temp;
}
for( i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
for(i=0;i<n;i++)
cout<<b[i]<<" ";
delete []a;
delete []b;
system("pause");
return 0;
}
jixingzhong 2005-05-12
  • 打赏
  • 举报
回复
最笨的方法:
循环遍历数组,每次查找最大值,输出本身和编号,(注意在数组中标记,不要重复)

优化的话,用结构数据,将数据和编号保存在一起,对结构数组排序,按顺序输出即可
struct temp
{ int date;
int num; }
yegaofei 2005-05-12
  • 打赏
  • 举报
回复
用选择排序吧,每次选出最大的,然后下次就不访问该数据,再选一个最大的,依次类推……

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧