代码中的自定义的排序方法返回值怎么使用

不管什么语言,或者是其他框架,涉及到排序时,他们的返回值作用其实都是一样的,这也可以说是一种标准,但是很多新手常常搞不懂排序方法的返回值怎么决定排序的顺序

首先我们要知道所有的排序正常情况下默认都是正序,自定义排序方法也是如此,所以在直接使用返回值正常运行代码的时候,都是当前对象和后一个对象做比较,在这个迭代的过程,当当前对象比较后一个对象时,如果结果是当前对象发现自己大,也就是说比较结果是个正数,而默认又要是正序,所以会发生交换,正是因为如此返回正数的结果是小的在前,也就是正序
我说的当前对象是我们自定义排序时的this不是方法的参数

同理,既然默认是返回正数是正序,那么我们将返回值改成返回负数,不就是倒序了吗?

而0,就是相等的时候,就不发生交换呗

所以大家明白了吗?

不过我要给大家说两个坑点:

  • 有很多代码,直接用的是1,-1,0导致很多刚接触代码的朋友,产生了混淆,以为任何时候只能识别这三个数,我想说的是,其实大家可以直接返回比较结果的,这个1,-1,0写法只不过是很多程序员的一种职业病,初衷是为了团队合作的时候,通过三个数,一眼就能看出怎么排序,但是由于这样的代码大量的出现,才导致了很多人的误解,我敢说直到现在,肯定也有很多编程的老手,从当初新手的时候误解到现在
  • 我曾经大学学习的时候,我的同学,因为总用减法比较,所以好奇之下试了一下写加法,发现永远是正序,而且还是那种不对的正序,所以大家也别思想和我同学那样太过活跃了
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值