永发信息网

用C语言对一维数组排序,并输出已排好元素的原来位置

答案:6  悬赏:60  手机版
解决时间 2021-04-20 00:04
用C语言对一维数组排序,并输出已排好元素的原来位置
最佳答案

  方法1:比较笨的办法是先排好。再在里面找。看是原来的第几个。
  方法2:有一个很快的方法,就是用快速排序排,
  #include "stdio.h"//
  void main(void){
  int a[6]={8,5,2,7,9,4},b[6],c[6],i,j,x;
  for(i=0;i<6;c[i]=1+i++)
  printf("%d ",b[i]=a[i]);
  printf("\n");
  for(i=0;i<6;i++){
  for(x=i,j=x+1;j<6;j++)
  if(b[x]  if(x!=i){
  j=b[i];
  b[i]=b[x];
  b[x]=j;
  j=c[i];
  c[i]=c[x];
  c[x]=j;
  }
  }
  for(i=0;i<6;printf("%d ",b[i++]));
  printf("\n");
  for(i=0;i<6;printf("%d ",c[i++]));
  printf("\n");
  }
全部回答
冒泡排序吧!!!
用选择法排序,优化过的选择法。
先挑出5个数中的最大值,并记录其下标,将该数与第一位的数字交换,并将该下标存入c数组。然后挑出剩下n-1个数的最大值,记录下标存入c,并与第二个位置进行交换,以此类推。。。。

#include
void main()

int i,j,k=0;
int a[5]={3, 8, 4, 7, 6};
int b[5]={8, 7, 6, 4, 3};
int c[5] = {0};
for (i=0;i<5;i++)
{
for (j=0;j<5;j++)
{
if (b[i]==a[j])
{
c[k++] = j+1; //因为说的是第几位而不是下标 所以加1
break;

}
}
for (i=0;i<5;i++)
{
printf("%d ",c[i]);
}
}
2 4 5 3 1 Press any key to continue
方法1:比较笨的办法是先排好。再在里面找。看是原来的第几个。 (代码我就不写了。)
方法2:有一个很快的方法,就是用快速排序排,
如果你深入的了解了快排,那么这个就很简单了。而且效率很高。
我给你写代码。

简单的思路:
定义一个指针数组,找到b数组中元素在a数组中的地址,并存储在指针数组对应位置。
之后将指针数组内的地址值依次取出来与a数组首地址相减,得到的就是原来的位置。
利用的原理:数组内地址是连续的!
#include 
int main()
{
    int a[5]={3, 8, 4, 7, 6}, b[5]={8, 7, 6, 4, 3},c[5],i,j,*p[5];
    for(i=0;i<5;i++)
    {
        for(j=0;j<5;j++)
        {
            if(b[i]==a[j])
                p[i]=&a[j];
        }
    }
    for(i=0;i<5;i++)
        c[i]=p[i]-&a[0]+1;
    printf("原来的位置数组c[5]={%d,%d,%d,%d,%d} ",c[0],c[1],c[2],c[3],c[4]);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
云县财富中心商业广场我想知道这个在什么地方
每天忙碌的工作收获为什么那么一点点?
我是农学本科生可以考那些专业的研究生
关于打毛线的问题→织毛衣时,怎样打可以打出
三十个人(猜一字)
请帮帮我翻译这些英语成中文,谢谢!一定要正
宝山区顾村镇乘坐几路公交车可到达虹桥广播大
m13ko7辅助噬菌体是什么抗性
外贸冷库肉食水产直销处地址有知道的么?有点
为什么我申请体验服的时候 老说还没有获得体
广维陶瓷地址在哪,我要去那里办事
跪求网页游戏
智能社的实力怎么样?
请问HTC Touch Diamond(S900)和多普达 Touch
在手机上用QQ拼音输入法,我的图标会亮么?
推荐资讯
有首歌的歌词是“白月光,心里某个地方,那么亮
趣味游戏之猜数谜-09,11,28
魔域罗姆萨在哪,魔域任务
写一段赞美绿叶的话夏天秋天
益友商行这个地址在什么地方,我要处理点事
蔡依林的《妥协》歌词
怎么喊麦啊!!!
往年高考古诗歌鉴赏,高考为什么要考鉴赏语文
已婚妈妈的个人自我评价
铁里冲地址在哪,我要去那里办事
苹果和萝卜那个更有营养?
那种液晶显示器好用呀?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?