#include<iostream>
#include<cstdlib>
using namespace std;
int binary_search(int arr[], int len, int val){
int low = 0, high = len - 1, mid = 0;
while (low <= high){
mid = (low + high) / 2;
if (val == arr[mid])
return mid;
if (val < arr[mid])
low = mid + 1;
else
high = mid - 1;
}
return -1;//查找失败
}
void prtArr(int arr[], int len){
for (int i = 0; i < len; i++)
cout << arr[i] << " ";
cout << endl;
}
int main(){
unsigned int ARRLEN = 0;
int val = 0;
int arr[] = { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };
ARRLEN = sizeof(arr) / sizeof(unsigned int);
prtArr(arr, ARRLEN);
cout << "输入要查找的数:"; cin >> val;
int ret = binary_search(arr, ARRLEN, val);
if (ret == -1)
cout << "未找到该数" << endl;
else
cout << "该数为数组的第" << ret << "个元素" << endl;
system("pause");
return 0;
}
执行结果: