Java的查詢與排序
阿新 • • 發佈:2018-12-12
Java中的查詢:
順序查詢,指從第一個元素開始,以此查詢。典型的有List中的indexOf方法。
int index=list.indexOf("內容"); 該方法的本質就是順序查詢。當資料量龐大時,效率低下。
二分查詢,二分查詢的前提是該內容是有序的,因此處於無序狀態的需要先進行排序。類似於人們玩猜大小的遊戲。Java的util包中的Arrays類的binarySearch方法可以進行二分查詢,它以一個數組和目標值作為輸入,返回目標的索引值。如果不存在,就返回一個負值。 列表可以利用Collections.binarySearch(list,target)達到同樣的效果。
Java中的排序:
Java對於陣列提供了排序方法,還是那個Arrays類,Arrays.sorts(陣列名);同樣的,這是依託於類實現了Compareable介面
List的排序利用的是Collection.sort(list)
當處理原資料型別的資料時,Arrays.sort採用的快速排序;當處理物件資料時,Collection和Arrays採用的是歸併排序。
Arrays.binarySearch(array,value) | 在一個已經排好序的陣列中返回索引值,不存在則返回負數 |
---|---|
Arrays.sort(array) | 陣列排序 |
Collections.binarrySearch(list,value) |
在一個已經排好序的列表中返回索引值,不存在則返回負數 |
Collection.shuffle(list) | 打亂排序(隨機排序) |
Collection.sort(list) | 列表排序 |