首页 > 代码库 > JAVA学习笔记----二分查找递归

JAVA学习笔记----二分查找递归

public class Main{
    public static int rank(int key, int[] a){
        return rank(key,a, 0 ,a.length -1 );
    }
    public static int rank(int key, int[] a, int lo , int hi){
        if (lo > hi){System.out.println(" 找不到 ");return -1;}
        System.out.println(String.format("max index is ->%s",hi));
        int mid = lo + (hi - lo)/2;
        System.out.println(String.format("index is -> %s",mid));
        if (key < a[mid]){ System.out.println(String.format("%s is less than %s",key,a[mid])); return rank(key, a, lo ,mid-1); }
        else if (key > a[mid]){System.out.println(String.format("%s is more than %s",key,a[mid])); return rank(key,a, mid+1,hi);}
        else {System.out.println(String.format("%s matched %s ----------> index %s!!!",key,a[mid],mid));return mid;}
    }

    public static void main(String args[]){
       int[] a = {1,2,3,4,5,6,43534,534535,1231,313,53,5,21312,3,123,123,12321,312312,31,24,5,34,6,7,353,5423,42,424,234,1321,34,43,6457,4} ;
       rank(100,a);
       rank(5,a);
    }
}


JAVA学习笔记----二分查找递归