int binarysearch(int arry[], int n, int goal) { int low = -1; int high = n; while(low + 1 < high) { int mid = (low + high) >> 1; if(arry[mid] < goal) { low = mid; } else { high = mid; } } int value = high; if(high >= n || arry[high] != goal) value = -1; cout<<"low is "<<low<<",high is "<<high<<",value is "<<value<<endl; return 0; }
原文:http://www.cnblogs.com/foreverstars/p/6545035.html