ZP741552720 2015-06-24 07:55 采纳率: 0%
浏览 1506

数据结构 问题求大神

比如对2 3 1 4* 4 5 排序 希望可以输出 1 2 3 4 4* 5 1 2 3 4* 4 5 两组数

void sort(edge e1[MS],int b)
{
int i,j;
int k;
edge tomp;

for(i=0;i<b;i++)
{
    k=i;
    for(j=i;j<b;j++)
    {
        if(e1[k].w>e1[j].w)
        k=j;
    }
    tomp=e1[k];
    e1[k]=e1[i];
    e1[i]=tomp;
}

}
数列由 选择排序 生成 会被其它函数调用 求哪唯爱大神 给我说下 要怎样改??谢谢

  • 写回答

4条回答 默认 最新

  • 西风胡杨的 2015-06-24 08:52
    关注

    想让相同的数在第二遍输出的时候发生交换,个人认为不用怎么改吧,只用把 if(e1[k].w>e1[j].w) 加一个等号,改为 if(e1[k].w>=e1[j].w) 。
    sort第一次调用输出正常顺序,然后再调用一次,这次的输出相同的数就会发生一次交换。不知道对不对?

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!