用递归实现的一个demo,很简短。
#include<iostream>
using namespace std;
int binarySearch(int a[], int l,int r,int x) {
if (l == r) return l;
if (l < r) {
int mid = l + r >> 1;
if (x > a[mid]) binarySearch(a, mid + 1, r, x);
else binarySearch(a, l, mid, x);
}
}
int main() {
int a[] = { 1,3 ,6,9,11,14,21,25,34 };
int x = 0;
cin >> x;
cout << binarySearch(a, 0, 8, x) << endl;
}