Here you can find the source of binarySearch(int[] index, int key, int begin, int end)
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 |
public static int binarySearch(int[] index, int key, int begin, int end)
//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; } }