int Binarysearch(int a[], int low, int high, int key){ /* key is the searching value, low and high is the two end point of the array. If the key is not in the array, return -1. */ if(low > high) return -1; int mid = (low+high)/2; if(a[mid] == key) return mid; else if(a[mid] > key){ return Binarysearch(a,low,mid-1,key); }else{ return Binarysearch(a,mid+1,high,key); } }
int Binarysearch(int intArray[], int middlePlace, int size, int top, int middle, int bottom, int target) { int found = 0; iteration++; if (middle == target) { found = 1; return middlePlace; } else if(top == bottom || middlePlace < 0 || middlePlace > (size-1) || bottom < 0 || top < 0) { found = 1; return -1; } else if (middle > target) { top = middlePlace-1; middlePlace = (bottom+(top-bottom)/2); middle = (intArray[middlePlace]); } else if (middle < target) { bottom = middlePlace; middlePlace = (bottom+(top-bottom)/2+1); middle = (intArray[middlePlace]); } return Binarysearch(intArray, middlePlace, size, top, middle, bottom, target); }