二分查找:前提是数组有序
public class demo8 { public static void main(String[] args) { //二分查找 //二分查找某个数是否存在 int[] arr={1,23,45,67,87}; System.out.println(exist(arr,6)); System.out.println(exist(arr,23)); } //前提:数组有序 public static boolean exist(int[] arr,int num){ if(arr==null || arr.length==0){ return false; } //左边,右边,变化的中间m int l=0,r=arr.length-1,m=0; while (l<=r){ m=(l+r)/2; if(arr[m]==num){ return true; }else if(arr[m]>num){ r=m-1; }else { l=m+1; } } //循环结束都找不到,返回false return false; } }
运行结果: