关于排序函数sort的一些思考
关于排序函数sort的一些思考
c++
升序
sort(a,a+n,cmp)
bool cmp(int b, int c){
return b < c;
}
cmp 是一个比较函数
cmp(b, c)是当b < c时返回true,表示不交换位置
java
//不能使用基本数据类型
Integer[] arr = {5,4,7,9,2,12,54,21,1};
//升序
Arrays.sort(arr, (a, b) -> {
//返回值>0交换
return a-b;
});
Comparable和Comparator都是用来实现对象的比较、排序
区别
Comparator位于java.util包下,而Comparable位于java.lang包下
Comparable接口的实现是在类的内部(如 String、Integer已经实现了Comparable接口,自己就可以完成比较大小操作),Comparator接口的实现是在类的外部(可以理解为Comparable是自已完成比较,Comparator是外部程序实现比较)
实现Comparable接口要重写compareTo方法, 在compareTo方法里面实现比较
都是正值交换
以上都是我的思考和查询资料所得,仅作为自我学习的记录

浙公网安备 33010602011771号