条件:
单调递增,递减的数列
mid=(left+right)/2
注意:如果偏大 那么left=mid+1
如果偏小right=mid-1
代码练习:
public class Tets2 {
public static void main(String[] args) {
int[] arr={1,4,5,45,256,367,3897};
int key=46;
int left=0;
int right=arr.length;
int mid=(left+right)/2;
int count=1;
while (key!=arr[mid] && right>left){
if (arr[mid]<key) {
left=mid+1;
}else {
right=mid-1;
}
mid=(left+right)/2;
count++;
}
if (arr[mid] == key) {
System.out.println("找到,找了" + count + "次");
}else {
System.out.println("没找到");
}
}
}