出位控 2018-12-11 04:54 采纳率: 0%
浏览 666

如何将数组按某值的差值用冒泡排序算法进行排序?

将数组里的值减去z,再进行排序。

本人小白,是不是将冒泡算法里的 if(r[j].key>r[j+1].key)修改成 if(r[j].key-z>r[j+1].key-z)就ok了?考试急用,谢谢da'shen

/*冒泡排序算法如下:*/
    void BubbleSort(RecordType r[], int length ) {
    n=length; change=TRUE;
    for ( i=1 ; i<= n-1 && change ;++i ) { //n为长度,i为右边已排序元素个数
    change=FALSE;// 当i=n时,下面的循环跳出,change为假上面的循环也跳出了。
    for ( j=1 ; j<= n-i ; ++j) // j为左边未排序元素个数(=n-i),
    if (r[j].key> r[j+1].key ) {
    x= r[j]; r[j]= r[j+1]; r[j+1]= x;
    change=TRUE;
}
}
}
  • 写回答

1条回答

  • threenewbee 2018-12-11 06:51
    关注

    是的,但是不等式两边如果同时减去一个相同的数字,则不需要相减
    a > b 成立
    那么 a + c > b + c一定成立。
    所以结论是代码根本不要修改。

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题