冒泡排序
* 原理:比较两个相邻的元素,将值大的元素交换至右端。
* 思路:依次比较相邻的两个数,将小数放在前面(索引 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接口的匿名内部类
如:
网友评论