天天看點

二分查找非遞歸

public static int binary(int[] arr, int data) {
        	int min = 0;
       		int max = arr.length - 1;
        	int mid;
        	while (min <= max) {
	            // 防止溢出
	            mid =  min + (max - min) / 2;
	            if (arr[mid] > data) {
	                max = mid - 1;
	            } else if (arr[mid] < data) {
	                min = mid + 1;
	            } else {
	                return mid;
	            }
        }
        return -1;
    }
           

繼續閱讀