二分查找

来源:互联网 发布:mac pro 必备软件 编辑:程序博客网 时间:2024/06/05 18:06
package com.yuzhyun.test7;public class BinarySearch {    static int binarySearch(int[] array, int key) {        int index = search(array, key, 0, array.length - 1);        return index;    }    private static int search(int[] array, int key, int left, int right) {        if (left == right)            if (key == array[left])                return left;            else {                return -1;            }        int mid = (left + right) / 2;        /**         * 此处考虑到出现right=left+1的时候,出现死循环         * */        if (mid == left) {            if (key == array[left])                return left;            else if (key == array[right])                return right;            else {                return -1;            }        }        if (key > array[mid])            return search(array, key, mid, right);        else if (key == array[mid]) {            return mid;        } else            return search(array, key, left, mid);    }}
0 0