/**
-
二分法查找的前提,是数组是一个有序数组。
*/
public class BinarySearch {
public static void main(String[] args) {int[] arr = {1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87,89,91,93,95,97,99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,129,131,133,135,137,139,141,143,145,147,149,151,153,155,157,159,161,163,165,167,169,171,173,175,177,179,181,183,185,187,189,191,193,195,197,199}; int target = 197; long startTime = System.currentTimeMillis(); //数组的中间值对应的下标mid //左边的数对应的下标min,另边对应max,初始对应min=0,max=arr.length - 1 int min = 0; int max = arr.length - 1; while (min <= max) { int mid = (min + max) / 2; //目标数与mid对应的数相对比。 if (arr[mid] == target) { System.out.println("100找到了。"); break; } else if (arr[mid] > target) { max = mid - 1; } else { min = mid + 1; } } if(target == 197){ System.out.println("找到了"); }
}
}