java裡面的排序查詢
阿新 • • 發佈:2018-11-19
java的類庫裡面提供了許多有用便捷的方法。這在很大的程度上節省了我們程式設計所需的時間。下面簡單介紹下一些我們平時最常用排序和查詢方法。
一.排序
1.Arrays.sort(double[] a)
我們可以看到方法的引數型別是double型的,這樣子不僅可以使該方法可以處理doube型的陣列,而且還可以處理int型的陣列。(把int型的資料傳給double型的資料是可行的,但反過來就不行)
2.Arrays.sort(double[] a,int start, int end)
這個方法和上面的那個方法比較像,只是函式的引數不一樣,這個方法是上個方法的過載。過載之後的方法我們可以看到多了start和end兩個引數。這兩個引數的作用可以限定待排序數列的範圍。
二.查詢
我們常用的查詢演算法是二分查詢,二分查詢很高效,注意這種演算法是建立在待查詢數列是有序的基礎上。
1.Arrays.binarysearch(double[] a ,double number)
a:是待查詢的元素所在的序列 number:是待查詢的數
如果找到該元素返回該元素的索引,否則返回一個負數。
下面我寫了一個簡單的程式,幫助大家瞭解,程式碼如下:
package 筆記; import java.util.Arrays; public class Example5_21_1 { public static void main(String[] args) { // TODO Auto-generated method stub int[] a= {1,2,54,32,43,23,78,654,43,2,34,5}; Arrays.sort(a,0,a.length); System.out.print(Arrays.toString(a)); System.out.println(""); int temp1=Arrays.binarySearch(a, 654); int temp2=Arrays.binarySearch(a, 435); if(temp1>=0) { System.out.println("654在陣列a下標為"+temp1+"的位置"); } else System.out.println("654不在陣列a中"); if(temp2>=0) { System.out.println("435在陣列a下標為"+temp2+"的位置"); } else System.out.println("435不在陣列a中"); } }
執行結果:
[1, 2, 2, 5, 23, 32, 34, 43, 43, 54, 78, 654]
654在陣列a下標為11的位置
435不在陣列a中