递归方法(二分法)

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);
    }

}
}

全部评论

相关推荐

流浪的神仙:无恶意,算法一般好像都得9硕才能干算法太卷啦
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务