Csharp/C Sharp/Collections Data Structure/Search
Uses a recursive method to implement binary search
<source lang="csharp"> 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); }
}
</source>