1. 程式人生 > >Java的查詢與排序

Java的查詢與排序

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採用的是歸併排序。

Java類庫中的查詢與排序
Arrays.binarySearch(array,value) 在一個已經排好序的陣列中返回索引值,不存在則返回負數
Arrays.sort(array) 陣列排序
Collections.binarrySearch(list,value)
在一個已經排好序的列表中返回索引值,不存在則返回負數
Collection.shuffle(list) 打亂排序(隨機排序)
Collection.sort(list) 列表排序