首页 > 代码库 > 【JAVA】BinarySearch

【JAVA】BinarySearch

public class BinarySearch {
	static public int binarySearch(int[] arr, int num) {
		int l = 0, u = arr.length - 1;
		while (l <= u) {
			int curr = (l + u) / 2;
			if (arr[curr] == num) {
				System.out.println("the index is :" + curr);
				return curr;
			}
			if (arr[curr] > num) {
				u = curr - 1;
			}
			if (arr[curr] < num) {
				l = curr + 1;
			}
		}
		System.out.println("sorry,can't find the num:"+num);
		return -1;
	}
	static public void main(String args[]){
		int[] arr = {2,3,4,5,11,22,33,44,88,99,101};
		try{
			if(binarySearch(arr, 44)!=7)throw new Exception();
			if(binarySearch(arr, 2)!=0)throw new Exception();
			if(binarySearch(arr, 101)!=10)throw new Exception();
			if(binarySearch(arr, 332)!=-1)throw new Exception();
		}catch(Exception ex){
			ex.printStackTrace();
		}
	}
}