如何理解lambda排序

规则定义

  • 如果a - b < 0,则a排在b前面,实现递增排序。

  • 如果a - b > 0,则a排在b后面。

  • 如果a - b == 0,则ab的顺序不变。

也就是说,如果为负值,则第一个在前,如果为正值,则第二个在前。

推论

这里我们不要去可以考虑 a 和 b 的大小关系,会把自己绕晕(因为有四种情况的同时还要去考虑位置关系,太绕了),而是去考虑 a 和 b 的相对位置关系,下面我们用代替 a 和 b 思考。

如果左 - 右 < 0,则最终位置左在前,此时不用调换位置

如果左 - 右 > 0,则最终位置右在前,此时需要调换位置,注意,此时原来左的元素变为了右,原来右的元素变为了左,如果忽略了这个变化,那么就会被这个问题绕进去,找不到统一规律。

无论是否调换位置,最后的结果一定满足不调换位置的位置关系,因为调换位置就是为了维持这个不调换位置的状态,即:左 < 右,递增。

如果要得到递减情况,那么lambda就是 b - a(右 - 左)

如果右 - 左 < 0,最终右在前,不用调换位置

如果右 - 左 > 0,最终左在前,调换位置。

最终均满足右 < 左,即递减。

统一记忆

无论左右都是小于0的时候位置关系不变,那么就以此为基准,得到最终大小关系:左<右(递增)或者右<左(递减)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yyt363045841

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值