必须是排好序的数组
1、先把要查找的数value与数组中间的值arr[mid]比较,若value=arr[mid],返回value即可;
2、若value>arr[mid],low=mid+1;
3、若value<arr[mid],high=mid-1;
4、若没有查找到,返回-1.
package holiday.day03; import java.util.Arrays; public class TestBinarySearch { public static void main(String[] args) { int[] arr = {1,3,7,9,4,6,5,8,}; Arrays.sort(arr); System.out.println(Arrays.toString(arr)); System.out.println(myBinarySearch(arr,7)); } public static int myBinarySearch(int arr[], int value){ int low=0; int high=arr.length-1; while (low<=high){ int mid=(low+high)/2; if(arr[mid]==value){ return mid; } if(value<arr[mid]){ high=mid-1; } if(value>arr[mid]){ low=mid+1; } //System.out.println("#####"); } return -1; } }