美文网首页
二分查找法

二分查找法

作者: 飘雨0103 | 来源:发表于2019-03-21 10:26 被阅读0次

    废话不多说,直接上代码

    public static void main(String[] args) {

    int srcArray[] = {3,5,11,17,21,23,28,30,32,50,64,78,81,95,101};

        System.out.println(binSearch(srcArray, 0, srcArray.length -1, 81));

    }

    // 二分查找递归实现

    public static int binSearch(int srcArray[], int start, int end, int key) {

    int mid = (end - start) /2 + start;

        if (srcArray[mid] == key) {

    return mid;

        }

    if (start >= end) {

    return -1;

        }else if (key > srcArray[mid]) {

    return binSearch(srcArray, mid +1, end, key);

        }else if (key < srcArray[mid]) {

    return binSearch(srcArray, start, mid -1, key);

        }

    return -1;

    }

    // 二分查找普通循环实现

    public static int binSearch(int srcArray[], int key) {

    int mid = srcArray.length /2;

        if (key == srcArray[mid]) {

    return mid;

        }

    int start =0;

        int end = srcArray.length -1;

        while (start <= end) {

    mid = (end - start) /2 + start;

            if (key < srcArray[mid]) {

    end = mid -1;

            }else if (key > srcArray[mid]) {

    start = mid +1;

            }else {

    return mid;

            }

    }

    return -1;

    }

    相关文章

      网友评论

          本文标题:二分查找法

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