算法 二分查找法

Posted 趣阅编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法 二分查找法相关的知识,希望对你有一定的参考价值。

作为十分常见的一种查找算法,也被称为折半查找法。首先要实现待查找数据有序,然后通过每次比较中间值和待查找值的大小调整边界范围,并调整指针位置。

Java实现:

递归实现:

public static int binarySearch(int[] arr, int start, int end, int hkey){
    if (start > end)
        return -1;

    int mid = start + (end - start)/2;    //防止溢位
    if (arr[mid] > hkey)
        return binarySearch(arr, start, mid - 1, hkey);
    if (arr[mid] < hkey)
        return binarySearch(arr, mid + 1, end, hkey);
    return mid;  
}

while循环实现:

public static int binarySearch(int[] arr, int start, int end, int hkey){
    int result = -1;

    while (start <= end){
        int mid = start + (end - start)/2;    //防止溢位
        if (arr[mid] > hkey)
            end = mid - 1;
        else if (arr[mid] < hkey)
            start = mid + 1;
        else {
            result = mid ;  
            break;
        }
    }
    return result;
}

以上是关于算法 二分查找法的主要内容,如果未能解决你的问题,请参考以下文章

算法丨二分查找法

算法:二分查找法

二分查找算法

分治算法-二分查找

简单实用算法——二分查找法(BinarySearch)

二分查找法