还是不太理解排序

还是不太理解排序

[姓名:凡凡, 年龄:2, 品种:中华田园猫]
[姓名:毛毛, 年龄:8, 品种:英国短毛猫]
[姓名:花花, 年龄:5, 品种:英国短毛猫]
比如凡凡作为第一个参数传进去,毛毛第二个,升序,凡凡比毛毛小,凡凡是第一个,那接下来呢,花花是第几个参数穿进去,跟谁比较,之前问过这个问题,还是不太理解升降

正在回答

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

2回答

同学你好,在进行排序时,如果两个数比较结果大于0,就把前一个数和后一个数交换,也就是把大的数放后面了,就是升序
比如上面的1,5,4,2要将他们升序排序,那么最终的结果应该是,1<2<4<5,5是最大的
所以只要在当5大于4的时候去交换它们的位置:
if(5 > 4 ) {
return 1;  //如果5>4,那么返回的值>0, 5和4交换位置;大的数到了后面,实现了升序

所以返回值大于0实现升序,反之小于0实现降序

祝学习愉快

好帮手慕阿园 2020-07-13 18:48:03

同学你好,sort方法会为集合中每条数据进行两两排序比较,底层是利用递归进行冒泡排序的,如下例如现在有如下数组

int [] x = {1,5,4,2};
那么sort()方法的比较逻辑为:
第一轮: 1和5比,1和4比, 1和2比
第二轮: 5和4比, 5和2比
第三轮: 4和2比
最后实现大小的排序
同学现在不用太纠结sort底层是如何实现的,同学现在只要记住sort方法,传入集合和自定义的NameComparetor,他就会将集合中的内容进行两两比较,从而实现排序

祝学习愉快

  • 提问者 qq_ibertine_0 #1
    那如何理解怎样才是升降排序呢,我买了一本java书,上面竟然没有关于这个排序的介绍,太low了
    2020-07-13 18:49:47
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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