二分查找BinarySearch

来源:互联网 发布:hadoop与云计算的关系 编辑:程序博客网 时间:2024/06/14 20:30
public static int rank(int key,int[] a){        int start = 0;        int end = a.length;        int mid = a.length/2 - 1;        while(start <= end){            if(key < a[mid]){                end = mid - 1;            }else if(key > a[mid]){                start = mid + 1;            }else{                return mid;            }            mid = (start + end)/2;        }        return -1;    }

数组已经排好序,思路是:每次和中间的数进行比较,小就继续从左面查找,反之亦然。
注意点:开始时,下标在开始和结束的地方,结束时,要不查不到,即start > end,返回-1,要不查到,返回序号。
循环条件,是start

0 0
原创粉丝点击