q6300222302
出位控
采纳率0%
2018-12-11 04:54 阅读 638

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

将数组里的值减去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条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2018-12-11 06:51

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

    点赞 评论 复制链接分享

相关推荐