二分查找法

package zwh.ocjp.sort;

public class BinarySearch
{
    

    public static void main(String[] args)
    {

        int[] a = new int[] { 1, 2, 3, 4, 5, 7, 8, 9, 11 };
        int index = binarySearch(a, 3);
        System.out.println(index);
    }

    public static int binarySearch(int[] array, int value)
    {

        int index = -1;
        int low = 0;
        int high = array.length - 1;
        int middle = 0;
        while (low <= high)
        {

            middle = (low + high) / 2;

            // 如果找到了
            if (value == array[middle])
            {
                index = middle;
                return index;
            }

            if (value < array[middle])
            {
                high = middle - 1;

            }

            if (value > array[middle])
            {
                low = middle + 1;

            }

        }

        return index;

    }

}

你可能感兴趣的:(二分查找法)