
Binary Search is a type of search algorithm, which also known as Half-Interval Search or Logarithmic Search
Finding a word in hard-cover dictionary.
Finding a certain contact in phone book.Binary Search is efficient alogrithm for finding an item from a sorted list of items.
Condition:
Given an array A of n elements with values A0,A_1,A_2,…,A(n-1) sorted such that A0 ≤ A_1 ≤ A_2≤⋯ ≤ A(n-1),
and target value T, the following subroutine uses binary search to find the index of T in A.
Subroutine
public static int BinarySearch(int[] array, int lo, int hi, int key) { ... }
int lo = 0; int hi = array.length - 1;
if (lo > hi) { // Return negative integer, which inplies unsuccessful search result return -1; }
int mid = (lo + hi) / 2;
if (key < array[mid]) { // hi = mid -1; return BinarySearch(array, lo, mid - 1, key); } else if (key > array[mid]) { // lo = mid + 1; return BinarySearch(array, mid + 1, hi, key); }
if (key == array[mid]) { // Return index value. return mid; }
Simple Implementation of Binary Search Algorithm can be found at: