比较与冒泡排序

本文深入探讨了排序算法的基本概念,重点介绍了自定义类型排序的两种策略:类实现Comparable接口并重写compareTo方法,以及使用Comparator接口进行解耦排序。同时分享了排序过程中的小技巧,包括计算元素之间的数量和次数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、自定义类型比较大些

1、类实现 java.lang.Comparable +重写 compareTo方法。

这种方法的特点是:与类耦合在一起,单一的排序规则

 

2、比较业务类

java.util.Comparator +重写compare方法 。这种方法的特点是:解耦,满足不同的多样化的排序规则

 

3、只有使用了以上两种方法才能调用java提供的排序算法.

sort(List<T> list)

方法中的T必须实现java.lang.Comparable +重写 compareTo。因为,sort方法内部,会把T类型转化为Object类型,进行操作。当需要进行比较的时候,则会讲Object类型强制转化为Comparable类型,并调用compareTo方法。由于多肽的缘故,当进行比较的时候会调用你写好的比较规则。

sort(List<T> list, Comparator<? super T> c)

 第二种比较方法,相对于第一种来说简单多了。Copparator会一直作为参数调用下去,当进行比较的时候会

调用 compare方法

 

二、冒泡排序


 

三、小技巧

1、 i-j之间有多少个数:j-i+1

2、i-j之间加了几次1 :j-i
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值