1 //C++二分查找代码 2 #include<iostream> 3 using namespace std; 4 5 int search(int array[], int n, int v) 6 { 7 int left, right, middle; 8 left = 0, right = n - 1; 9 10 while (left <= right) { 11 middle = (left + right) / 2; 12 if (array[middle] > v) right = middle - 1; 13 else if (array[middle] < v) left = middle + 1; 14 else return middle; 15 } 16 return -1; 17 } 18 19 20 int main() 21 { 22 int array[10] = {1, 2, 3, 6, 7, 7, 8, 9, 13, 19}; 23 cout << search(array, 10, 19) << endl; 24 return 0; 25 }
http://www.cppblog.com/converse/archive/2009/10/05/97905.html