在有序数组里,是否存在某个数
package practice01; import java.util.Arrays; //二分法(在有序数组里,是否存在某个数) public class demo04 { public static boolean existNum(int[] sortedArr,int num){ if (sortedArr.length==0||sortedArr==null){ return false; } int l=0; //左索引 int r=sortedArr.length-1; //右索引 int mid=0; //中点 while (l<r){ //l~r至少有两个数时 mid=((r-l)>>1)+l; //(r+l)/2 if (sortedArr[mid]==num){ return true; }if (sortedArr[mid]>num){ r=mid-1; }else { l=mid+1; } } return sortedArr[l]==num; //当r=l剩下最后一个数的时候 } public static void main(String[] args) { int[] sortedArr={1,2,2,2,3,4,4}; boolean b = existNum(sortedArr, 5); System.out.println(b); } }