day13_冒泡排序 與 選擇排序 和 自定義對象排序


冒泡排序

* 原理:比較兩個相鄰的元素,將值大的元素交換至右端。

* 思路:依次比較相鄰的兩個數(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)部類

如:


最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容