1. 程式人生 > >java裡面的排序查詢

java裡面的排序查詢

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中