冒泡排序
* 原理:比較兩個相鄰的元素,將值大的元素交換至右端。
* 思路:依次比較相鄰的兩個數(shù),將小數(shù)放在前面(索引 i),大數(shù)放在后面(索引 j)。
即在第一趟:首先比較第1個和第2個數(shù),將小數(shù)放前,大數(shù)放后。
然后比較第2個數(shù)和第3個數(shù),將小數(shù)放前,大數(shù)放后,如此繼續(xù),
直至比較最后兩個數(shù),將小數(shù)放前,大數(shù)放后。重復第一趟步驟,
直至全部排序完成。
對數(shù)組 與 集合 進行冒泡排序 相類似 只 演示 數(shù)組冒泡排序


選擇排序
* 原理: 首先在未排序序列中找到最?。ù螅┰?,存放到排序序列的起始位置,然后,再從剩余未排序元素中繼續(xù)尋找最小(大)元素,然后放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。
* 思路:
?給定數(shù)組:int[] arr={里面n個數(shù)據(jù)};
?第1趟,在待排序數(shù)據(jù)arr[1]~arr[n]中選出最小的數(shù)據(jù),將它與arrr[1]交換;
?第2趟,在待排序數(shù)據(jù)arr[2]~arr[n]中選出最小的數(shù)據(jù),將它與arr[2]交換;
?以此類推,第i趟在待排序數(shù)據(jù)arr[i]~arr[n]中選出最小的數(shù)據(jù),將它與arr[i]交換,直到全部排序完成。


自定義對象排序
方法1:
自定義對象實現(xiàn)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());
}
就可以調(diào)用Collections.addAll(list) 方法對對象集合進行排序
方法2:
調(diào)用排序方法時傳入實現(xiàn)類參數(shù)
在調(diào)用Collections.addAll(list,比較器) 中傳入Comparator接口的匿名內(nèi)部類
如:

