美文网首页
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