美文网首页
day13_冒泡排序 与 选择排序 和 自定义对象排序

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

作者: 98e46a4d60b6 | 来源:发表于2017-10-14 19:21 被阅读0次


冒泡排序

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

* 思路:依次比较相邻的两个数,将小数放在前面(索引 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接口的匿名内部类

如:

相关文章

网友评论

      本文标题:day13_冒泡排序 与 选择排序 和 自定义对象排序

      本文链接:https://www.haomeiwen.com/subject/jjdfuxtx.html