public static void Main()
Console.WriteLine("Enter length of array");
int len = Convert.ToInt32(Console.ReadLine());
int[] array = new int[len];
for(int i = 0; i< len; i++){
Console.WriteLine("Enter Element");
int element = Convert.ToInt32( Console.ReadLine());
Console.Write("Enter element to search for");
int x = Convert.ToInt32(Console.ReadLine());
int found = BinarySearch(array, x);
Console.WriteLine (x + " is found at position " + found);
int foundRecursive = BinarySearchRecursive(array, 0, len - 1, x);
Console.WriteLine (x + " is found recursively at position " + foundRecursive);
public static int BinarySearch(int[] array, int x){
int high = array.Length - 1;
int mid = (high + low) / 2;
public static int BinarySearchRecursive(int[] array, int low, int high, int x){
int mid = (low + high)/2;
return BinarySearchRecursive(array, low, mid - 1, x);
return BinarySearchRecursive(array, mid +1, high, x);
if(x == array[mid]) return mid;