二分查找

代码实现

  1. /**
  2. * @author laoduan
  3. * @create 2020-05-10-14:14
  4. */
  5. //使用二分查找的前提是该数组是有序的
  6. public class BinarySearch {
  7. public static void main(String[] args) {
  8. int arr[]={1,8,10,89,1000,1234};
  9. int resIndex = binarySearch(arr,0,arr.length-1,88);
  10. System.out.println("resIndex="+resIndex);
  11. }
  12. public static int binarySearch(int[] arr,int left,int right,int findval){
  13. if(left>right){
  14. return -1;
  15. }
  16. int mid = (left+right)/2;
  17. int midVal = arr[mid];
  18. if(midVal<findval){
  19. return binarySearch(arr,mid+1,right,findval);
  20. }else if(midVal>findval){
  21. return binarySearch(arr,left,mid-1,findval);
  22. }
  23. else{
  24. return mid;
  25. }
  26. }
  27. }