美文网首页
二分查找算法

二分查找算法

作者: 堕落白天使 | 来源:发表于2018-11-19 09:45 被阅读0次

1.迭代法

public static int rank(int key,int nums[]){

    int low = 0;

    int high = nums.length - 1;

    int notFind = -1;

    while(low <= high){

        int middle = (high + low) / 2;

        if(nums[middle] > key){

            high = middle - 1;

        }else if(nums[middle] < key){

        low = middle + 1;

        }else{

            return middle;

        }

       }

    return notFind;

}

2.递归法

public static int search(int num,int low,int high,int a[]){

    int middle = (high + low) / 2;

    while(low <= high){

        if(a[middle] > num){

            return search (num,low ,middle - 1,a);

        }else if(a[middle] < num) {

            return  search(num,middle + 1,high,a);

        }else{

            return middle;

        }

    }

    return -1;

}

相关文章

网友评论

      本文标题:二分查找算法

      本文链接:https://www.haomeiwen.com/subject/ctkofqtx.html