Non-Recursive Binary Search int BinarySearch(int[] x, int key) { int low = 0; int high = x.length-1; int middle = (low+high)/2; while ((low <= high) && ( x[middle] != key )) { if (key high) return -1; else return middle; } Recursive Binary Search int BinarySearch(int[] x, int low, int high, int key) { if (low>high) return -1; else { int middle = (low+high)/2; if (x[middle] == key) return middle; if (key < x[middle]) return BinarySearch(x,low,middle-1,key); else return BinarySearch(x,middle+1,high,key); } } Initially: int found = BinarySearch(x,0,x.length-1,key);