二分查找
1、思想:找中间的数,变换左右边界值
2、编程要点:设置 l<=r 作为作为循环判断标志
3、代码
import java.util.*; /** * 1、找到 * 2、没找到 */ public class Main { public static void main(String[] args) { int[] arr = new int[]{1, 4, 7, 9, 12, 15, 17, 25, 33}; int target = 1; System.out.println(bsearch( arr, target)); } private static boolean bsearch(int[] arr, int target) { int l = 0; int r = arr.length - 1; int m =0; boolean found = false; while (l <= r){ m = (l + r) / 2; if (arr[m] == target){ System.out.println(m); return found = true; }else { if (arr[m] > target){ r = m - 1; }else { l = m + 1; } } } return false; } }