// BinarySearch.java // Created on Nov 16, 2004 // Created by Shahein Tajmir // /** * @author Shahein Tajmir * * Created on Nov 16, 2004 */ public class BinarySearch { public static void main(String[] args) { int integers[] = new int[10]; for (int i = 0; i < 10; i++) integers[i] = 10 * i; int a = BinarySearch.search(10, integers, integers.length, 0); System.out.println(a); } static int search(int num, int[] array, int upper, int lower) { if (array[(upper + lower) / 2] == num) return ((upper + lower) / 2); if (lower == upper && num != array[(upper + lower) / 2]) return -1; if (array[(upper + lower) / 2] > num || array[(upper + lower) / 2] < num) { if (array[(upper + lower) / 2] > num) upper = (upper + lower) / 2; else lower = (upper + lower) / 2; } if (upper - lower == 1) { if (array[upper] == num) return upper; else if (array[lower] == num) return lower; else return -1; } return search(num, array, upper, lower); } }