基本思想: 给定一个有序的数组,然后判断一个数字是否存在于数组当中。设定三个变量,int min,max,mid分别记录数组中的下标值min = 0, max = arr.length-1,mid = (min+max)/2.然后在通过循环并判断。
问题: 已知一数组int [ ] arr = new int[ ] {13,15,19,28,33,45,78,106},若判定45是否存在于数组当中。
操作: 1. 取中间的下标mid = (min+max)/2
2. 发现45大于 arr[mid]的值,此时min = mid+1;再进行判断mid = (min+max)/2
3. 此时发现45等于arr[mid]的值,可以返回mid的下标。
实现代码: