天天看點

二分查找-遞歸

public static int myBinarsSearch(int[] a, int key, int start, int end) {
		//start一定不能大于end
		while (start <= end) {
			int middle = (start + end) / 2;
			if (key == a[middle]) {
				return middle;
			} else if (key > a[middle]) {
				return myBinarsSearch(a, key, middle + 1, end);
			} else if (key < a[middle]) {
				return myBinarsSearch(a, key, start, middle - 1);
			}
		}
		return -1;
	}
	public static void main(String[] args) {
		int[] a = { 1, 5, 6, 2, 8, 11, 99 };
		int result = Er_digui.myBinarsSearch(a, 99, 0, a.length);
		System.out.printf("傳回的下标為:%d", result);
	}