第一種排序:【冒泡排序】基本資料類型的排序。
【1】最簡易的冒泡排序。效率低。因為比較的次數和趟數最多。

View Code
【2】進行一次優化的冒泡排序。減少每趟的比較次數。

【3】進行最終的優化。減少比較的趟數和次數

break,continu,return的差別:
break---->用于終止break所在的本層循環,對本層循環後邊同層相鄰的代碼無影響,會執行後邊的代碼。
continu-->用于暫停本次循環,不執行continu後邊循環體内的代碼,繼續下次循環。
return--->用于傳回方法。無論多少層循環,無論處于什麼位置,一旦執行到return,則方法終止運作。後邊的代碼,無論本層,還是他層,一概不執行。
第二種排序:引用資料類型的排序。
【A】[内置引用類型(String Date Integer等),自定義引用類型]
實作步驟:(1)實作一個接口。java.lang.Comparable
(2)重寫一個方法public int compareTo(Object obj)
(3)傳回 0 表示 this=obj
傳回 正數 表示this>obj
傳回 負數 表示 this<obj
第一種:常用内置類的比較規則
[1]Integer --->首先将兩個包裝類,轉換成基本資料類型。然後進行大小比較。
[2]Character---> 字元類比較規則是:先将兩個字元轉換成對應的unicode值,然後進行相減。進而比較大小。
[3]String
---->從兩個字元串的第一個字元開始,逐個對應字元進行比較,如果遇見字元不同,傳回字元的unicode碼之差,後邊字元不在對比,比較。決定兩個字元串的大小。
---->如果一個字元串是另一個子符串的起始子字元串,則進行長度差比較。比如:abc.compareTo(abcde)進行比較,傳回-2
[4]Date--->将兩個時間都轉換成長整形數,然後比較兩個數的大小。決定誰大誰小

【B】[jdk内置引用類型性,自定義比較規則]
實作步驟:(1)實作一個接口。java.util.Comparator
(2)重寫一個方法public int compare(String o1, String o2)
(3)傳回 0 表示 o1=o2
傳回 正數 表示o1>o2
傳回 負數 表示 o1<o2
内置引用類型實作java.lang.Comparable接口定義比較規則和自定義規則實作java.util.Comparator接口的不同之處和差別

封裝的一個排序工具類,結合了冒泡排序和内置類排序規則和自定義排序規則。代碼示範

java.util包中有一個Collections工具類對list容器進行排序。測試代碼。
