Java Binary Search binarySearch(int[] array, int size, int value)

Here you can find the source of binarySearch(int[] array, int size, int value)

Description

binary Search

License

Apache License

Declaration

static int binarySearch(int[] array, int size, int value) 

Method Source Code

//package com.java2s;
/*//www  . java 2  s  . c o m
 * Copyright (C) 2013 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

public class Main {
    static int binarySearch(int[] array, int size, int value) {
        int lo = 0;
        int hi = size - 1;

        while (lo <= hi) {
            int mid = (lo + hi) >>> 1;
            int midVal = array[mid];

            if (midVal < value) {
                lo = mid + 1;
            } else if (midVal > value) {
                hi = mid - 1;
            } else {
                return mid; // value found
            }
        }
        return ~lo; // value not present
    }

    static int binarySearch(long[] array, int size, long value) {
        int lo = 0;
        int hi = size - 1;

        while (lo <= hi) {
            final int mid = (lo + hi) >>> 1;
            final long midVal = array[mid];

            if (midVal < value) {
                lo = mid + 1;
            } else if (midVal > value) {
                hi = mid - 1;
            } else {
                return mid; // value found
            }
        }
        return ~lo; // value not present
    }
}

Related

  1. binarySearch(final Object[] a, final int fromIndex, final int toIndex, final Object key)
  2. binarySearch(int arr[], int low, int high, int key)
  3. binarySearch(int codePoint)
  4. binarySearch(int[] array, int key)
  5. binarySearch(int[] array, int size, int value)
  6. binarySearch(int[] index, int key, int begin, int end)
  7. binarySearch(int[] source, int key)
  8. binarySearch(long[] a, int fromIndex, int toIndex, long key)
  9. binarySearch(long[] a, long key, int endIndex)