sort升序降序的原理是什么

sort升序降序的原理是什么

为什么return a-b和return a>b都是升序;而return b-a和return b>a都是降序

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

若 a 等于 b,则返回 0。

若 a 大于 b,则返回一个大于 0 的值。


  • 感觉还是没有讲清楚为什么a<b是降序,按你的说法“若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。”,应该a<b是升序才对 例:a=1,b=2,排序后a出现在b之前,那就是1 2,这是升序,实际上a<b是降序的
    2018-06-11 18:13:50
  • return a - b; // 升序时: 如果a>b,那么返回的值>0,a和b交换位置; return b - a; // 降序时: 如果b>a,那么返回的值>0,a和b交换位置; 原理:return的值可能是一个大于0的数也或者可能是小于等于0的数,如果return后的值大于0则让数组a和b交换一下位置;小于等于0,则原来数组中的位置不变;
    2018-06-11 18:35:28
  • 这样的话是说得通的,但是这个原理“如果return后的值大于0则让数组a和b交换一下位置;小于等于0,则原来数组中的位置不变”从哪来的啊
    2018-06-12 10:34:12
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
HTML5与CSS3实现动态网页 2018
  • 参与学习       1887    人
  • 提交作业       4643    份
  • 解答问题       5760    个

有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师