java實現折半查詢。

悠悠隱於市發表於2011-04-08

折半查詢也稱二分法查詢..

 

以下java實現的簡單的例子.具體程式碼如下:

package pack.java.splitdemo;

public class SplitDemo {
	
	/**
	 * author:ZhouHaiTao;
	 * @param arrayData 資料;
	 * @param searchData 查詢的資料;
	 * @param start 開始索引;
	 * @param end  結束索引;
	 * @return 索引下標;沒有查詢到值,這返回-1;
	 */
	private int splitMethod(int[] arrayData,int searchData,int start,int end){
		int index = (start + end) / 2;
		int data = arrayData[index];
		
		if(start >end){
			return -1;
		}
		
		if(data == searchData){
			return index;
		}else {
			//如果查詢出的資料,小於查詢出的資料,
			if(data < searchData){
				//利用遞迴,再次查詢;index向上移動1位。
				return splitMethod(arrayData, searchData, index+1, end);
			}else{
				return splitMethod(arrayData, searchData, start, end-1);
			}
		}
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SplitDemo splitDemo = new SplitDemo();
		int[] arrayData = new int[]{1,3,20,23,29,45,54,64,99};
		int index = splitDemo.splitMethod(arrayData,54, 0,arrayData.length-1);
		System.out.println("is exists:"+index);
	}
}

 

 

相關文章