Java Binary Search binarySearch(int[] index, int key, int begin, int end)

Here you can find the source of binarySearch(int[] index, int key, int begin, int end)

Description

From MTJ Searches for a key in a subset of a sorted array.

License

Open Source License

Parameter

Parameter Description
index Sorted array of integers
key Key to search for
begin Start posisiton in the index
end One past the end position in the index

Return

Integer index to key. -1 if not found

Declaration

public static int binarySearch(int[] index, int key, int begin, int end) 

Method Source Code

//package com.java2s;
/**// w w w.ja v  a2s . c  o  m
 * This file is part of GeneMANIA.
 * Copyright (C) 2010 University of Toronto.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */

public class Main {
    /** From MTJ
     *
     * Searches for a key in a subset of a sorted array.
     *
     * @param index
     *            Sorted array of integers
     * @param key
     *            Key to search for
     * @param begin
     *            Start posisiton in the index
     * @param end
     *            One past the end position in the index
     * @return Integer index to key. -1 if not found
     */
    public static int binarySearch(int[] index, int key, int begin, int end) {
        end--;

        while (begin <= end) {
            int mid = (end + begin) >> 1;

            if (index[mid] < key) {
                begin = mid + 1;
            } else if (index[mid] > key) {
                end = mid - 1;
            } else {
                return mid;
            }
        }

        return -1;
    }
}

Related

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