day13_冒泡排序 与 选择排序 和 自定义对象排序


冒泡排序

* 原理:比较两个相邻的元素,将值大的元素交换至右端。

* 思路:依次比较相邻的两个数,将小数放在前面(索引 i),大数放在后面(索引 j)。

即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。

然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,

直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,

直至全部排序完成。

对数组 与 集合 进行冒泡排序 相类似 只 演示 数组冒泡排序



选择排序

* 原理: 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

* 思路:

 给定数组:int[] arr={里面n个数据};

 第1趟,在待排序数据arr[1]~arr[n]中选出最小的数据,将它与arrr[1]交换;

 第2趟,在待排序数据arr[2]~arr[n]中选出最小的数据,将它与arr[2]交换;

 以此类推,第i趟在待排序数据arr[i]~arr[n]中选出最小的数据,将它与arr[i]交换,直到全部排序完成。



自定义对象排序

方法1:

自定义对象实现Comparator<T>接口 比较器

如:

Studen对象的排序

public class StudentSort implements Comparator<StudentSort>

需要重写

@Override

public int compare(StudentSort s1, StudentSort s2) {

return s1.getAge()-s1.getAge();

// return s1.getName().compareTo(s2.getName());

}

就可以调用Collections.addAll(list) 方法对对象集合进行排序

方法2:

调用排序方法时传入实现类参数

在调用Collections.addAll(list,比较器) 中传入Comparator接口的匿名内部类

如:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容