[数据结构]二分法查找

来源:互联网 发布:孙宏斌的钱哪来的知乎 编辑:程序博客网 时间:2024/05/16 09:33
1.最坏情况查找最后一个元素(或者第一个元素)Master定理T(n)=T(n/2)+O(1)所以T(n)=O(logn)
2.最好情况查找中间元素O(1)查找的元素即为中间元素(奇数长度数列的正中间,偶数长度数列的中间靠左的元素)
空间复杂度:

S(n)=n

public class BinaryTest{    public static int binary(int[] array, int value)    {        int low = 0;        int high = array.length - 1;        while(low <= high)        {            int middle = (low + high) / 2;            if(value == array[middle])            {                return middle;            }            if(value > array[middle])            {                low = middle + 1;            }            if(value < array[middle])            {                high = middle - 1;            }        }        return -1;    }    public static void main(String[] args)    {        int[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9};        int value = binary(a, 9);        System.out.println(value);    }}


原创粉丝点击