Uses a recursive method to implement binary search
using System;
public class BinarySearch {
public static int Search (int[] data, int key, int left, int right) {
if (left <= right) {
int middle = (left + right)/2;
if (key == data[middle])
return middle;
else if (key < data[middle])
return Search(data,key,left,middle-1);
else
return Search(data,key,middle+1,right);
}
return -1;
}
public static void Main(String[] args) {
int key; // the search key
int index; // the index returned
int[] data = new int[10];
for(int i = 0; i < data.Length; i++)
data[i] = i;
key = 9;
index = Search(data, key, 0, data.Length-1);
if (index == -1)
Console.WriteLine("Key {0} not found", key);
else
Console.WriteLine ("Key {0} found at index {1}", key, index);
}
}