欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA二分查找法

程序员文章站 2024-03-16 09:05:46
...

JAVA二分查找法

算法思想

二分查找,又叫折半查找,要求待查找的序列是有序的。每次取中间位置的值与待查关键字比较,如果中间位置的值比要找的值,则在左边部分循环查找,如果中间位置的值比待查关键字,则在后边部分循环查找。直到查找到了为止。

时间复杂度

O(n) = O(log2n)

源码

/**
 * 二分查找法
 */
public class BiSearch {

    public static void main(String[] args) {
        int[] arr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
        int a = 5;
        System.out.println("查找的数下标为:" + biSearch(arr, a));
        // 输出结果:查找的数下标为:6
    }

    private static int biSearch(int[] array, int a) {
        int left = 0;
        int right = array.length - 1;
        int mid;
        while (left <= right) {
            mid = (left + right) / 2;
            if (array[mid] == a) {
                return mid + 1;
            } else if (array[mid] < a) { //如果此时中间数小于查找的数,则向右查找
                left = mid + 1;
            } else { //否则向左查找
                right = mid - 1;
            }
        }
        return -1;
    }
}