递归方法(二分法)

public class A {

public static void main(String[] args) {

       int[]array= {1,2,3,4,5};
   int index = search(array,-4,0,array.length-1);
   System.out.println(index);
}
}
//递归版的二分法方法
public static int search(int[]array,int key,int left,int right) {
    if(left>right) {
        return -1;
    }
    int middle = (left+right)/2;
    if(key==array[middle]) {
        return middle;
    }else if(key>array[middle]) {
        //比中间数字大,在右边,左边界变成middle+1,右边界不变
        return search(array,key,middle+1,right);
    }else {
        return search(array,key,left,middle-1);
    }

}
}

全部评论

相关推荐

1 1 评论
分享
牛客网
牛客企业服务