package com.interview.algorithms.array; /** * Created_By: stefanie * Date: 14-10-19 * Time: 下午3:29 */ public class C4_67_ElementSearchInVArray { public static int find(int[] array, int key){ return find(array, key, 0, array.length - 1); } private static int find(int[] array, int key, int low, int high) { if(low > high) return -1; int mid = (low + high) / 2; if(array[mid] == key) return mid; int index = -1; if(array[mid] < key) { if(array[low] >= key) index = find(array, key, low, mid - 1); if(index == -1 && array[high] >= key) index = find(array, key, mid + 1, high); return index; } else { if(array[low] <= key) index = find(array, key, low, mid - 1); if(index == -1 && array[high] <= key) index = find(array, key, mid + 1, high); return index; } } }