A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

int [] arr= {11,22,33,44,55,66,77};
        二分查找
        1,返回值类型  返回索引  int
        2,参数列表   int [] arr ,int value;

    public static int getIndex(int [] arr ,int  value)
    int min =0 ;
    int max =arr.length-1;
    int mid=(min+max)/2;
    while(arr[mid]!=value){            //  要中间找不等于要找的值开始进入循环.
    if (arr[mid]<value){            //当中间值小于了要找的值,改变最小的值
        min=mid+1;
    }else if(arr[mid]>value){            //当中间找大于了要找的值,改变最大索引
        max=mid-1;
    }
    mid=(min+max)/2;            //无论最大索引还是做小索引改变,中间索引都会随之改变
    if (min > max)                //如果最小的索引都大于最大的索引,就没有必要查找了,返回-1.

1 个回复

正序浏览
您需要登录后才可以回帖 登录 | 加入黑马