二分查找法

来源:互联网 发布:mac 照片浏览工具 编辑:程序博客网 时间:2024/06/06 10:56
    public static void main(String[] args) {        int[] nums={30,40,60,70,90,100};        int idx=binarySearch(nums,60);        if(idx==-1){            System.out.println("没有找到");        }else{            System.out.println("数字的位置是:"+idx);        }    }    public static int binarySearch(int[] nums,int num){        int low = 0;        int high = nums.length-1;        while(low<=high&&low<=nums.length-1&&high<= nums.length-1){               int mid = (high+low)/2;//计算中间位置mid = (L+H)/2               if(num==nums[mid]){//传入的数字和中间的数字进行比较                      return mid;//查找到了,返回               }else if(num<nums[mid]){                      high = mid - 1;//比中间数小,在左边查,将high的值往原mid的左边移一位,就是以原mid的值左边一位为high值               }else if(num>nums[mid]){                      low = mid + 1;//比中间数大,在右边查,将low的值往原mid的右边移一位,就是以原mid的值右边一位为low值               }        }        return -1;//没有查找到,返回-1          }
0 0