數據結構--順序查找、二分查找

/**
 * 有序表的查找
 * @author [email protected]
 *
 */
public class Search {

	/**
	 * 順序查找
	 */
	public static int exec(int a[], int key){
		for(int i = 0; i < a.length; i++){
			if(a[i] == key){
				return i;
			}
		}
		return -1;
	}
	/**
	 * 順序表二分查找
	 */
	public static int exec2(int a[], int key){
		int low = 0, high = a.length - 1;
		while(low <= high){
			int mid = (low + high) / 2;
			if(a[mid] == key){
				return mid;
			}else if(a[mid] > key){
				high = mid - 1;
			}else if(a[mid] < key){
				low = mid + 1;
			}
		}
		return -1;
	}
	
	
	public static void main(String[] args) {
		int a[] = {05, 13, 19, 21, 37, 56, 64, 75, 80, 88, 92};
		System.out.println(Search.exec(a, 37));
		System.out.println(Search.exec(a, 63));
		System.out.println(Search.exec2(a, 37));
		System.out.println(Search.exec2(a, 63));
		
	}

}

發佈了89 篇原創文章 · 獲贊 10 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章