java二分查找法

public class JdbcTest {
	public static void main(String[] args){
		int[] arr = {1,2,3,4,5,6,7,8};
		int result = searchHalf_2(arr, 5);
		System.out.println(result);
	}
	/**
	 * 二分查找法(要求待查表为有序表)
	 * @param arr 数组
	 * @param key 要查找的数
	 * @return 返回查找的数在数组中的索引位置
	 */
	public static int searchHalf_2(int[] arr, int key){
		int min = 0;
		int max = arr.length - 1;
		int mid = (min + max)/2;
		while(key != arr[mid]){
			if(key > arr[mid]){
				min = mid + 1;
			}else{
				max = mid - 1;
			}
			if(min > max){
				return -1;
			}
			mid = (min + max)/2;
		}
		return mid;
	}
}

  

posted @ 2014-02-25 08:27  lxricecream  阅读(193)  评论(0)    收藏  举报