为了账号安全,请及时绑定邮箱和手机立即绑定

关于return a-b 的理解这样是否正确??

我们可以这么理解 return a-b  

如果a>b的话 返回的不管是几,肯定是正数、 

a<b的话肯定是负数。(这里不考虑等于的情况,没意义,排序谁前谁后有区别吗?) 

这个时候再通过sort排序的时候,每次都要计算一次正负值后对两个数排序,这样负数肯定在前,正数在后……

这样,小的在前,大的在后,就是升序排列。

反过来,b-a的话,如果a>b,返回的是负数,这样b就在前面……最后结果就是降序排列

不知道这样理解对不对?


正在回答

6 回答

因为sort()函数使用的是冒泡排序,冒泡排序会重复地走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,一直重复地进行直到说该数列已经排序完成。

如果a-b>0(即正数)就把a和b的位置交换,也就是较小的一个数会排到前面;

如果b-a>0就把a和b的位置交换,也就是较大的一个数会排到前面。

5 回复 有任何疑惑可以回复我~
#1

慕后端4851235

先記一下
2015-02-05 回复 有任何疑惑可以回复我~
#2

驰子 提问者

非常感谢!
2015-07-08 回复 有任何疑惑可以回复我~
#3

dong起来

return a-b返回的不是一个数值吗?
2016-06-18 回复 有任何疑惑可以回复我~
public void


0 回复 有任何疑惑可以回复我~

但是为什么不是对a-b的值进行大小排序呢?我在这卡着了,求解

0 回复 有任何疑惑可以回复我~
#1

一叶怀沙

return a-b是比较a和b,a比b大的话则把a排在b前面,这样经过若干次比较,就会排序完成。而你的意思是后台另有一个数组,记录a和b的差,差大的那对a和b排在前面。这本身需要另有一个数组,而且需要把这个数组再排一次序,再而且所谓“差大的那对a和b排在前面”根本对排序没任何意义。 作者:杨光 链接:https://www.zhihu.com/question/22781233/answer/22612368 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2016-04-01 回复 有任何疑惑可以回复我~

可以这么理解

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468044    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

关于return a-b 的理解这样是否正确??

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信