public static int Find(int[] a, int key)
return Find(a, 0, a.Length, key);
public static int Find(int[] a, int start, int end, int key)
int mid = (start + end) / 2;
return Find(a, mid + 1, end, key);
return Find(a, start, mid, key);
public static void Main(string[] args)
int[] a = {1, 4, 6, 7, 8, 13, 15, 16};
public static void Test(int[] a, int key)
int index = Find(a, key);
Console.WriteLine("{0} is present at index {1}", key, index);
Console.WriteLine("{0} is not found", key);