前提
1.存储元素列表内的元素必须为有序的;
结果展示
代码部分
#include <iostream>
using namespace std;
void bisearch(int _find,int *_pArr,int _len)
{
//最小值 最大值
int mMin = 0, mMax = _len - 1;
//中间值
int mMid = 0;
while (mMin <= mMax)
{
mMid = (mMin + mMax) / 2;
if (_find == _pArr[mMid])
{
cout << "找到了值:" << _find << endl;
return;
}
else if (_find > _pArr[mMid])
{
mMin = mMid + 1;
cout << "中间值为:" << _pArr[mMid] << endl;
cout << "中间值小了" << endl;
}
else if (_find < _pArr[mMid])
{
mMax = mMid - 1;
cout << "中间值为:" << _pArr[mMid] << endl;
cout << "中间值大了" << endl;
}
}
cout << "没有这个值!" << endl;
}
int main()
{
//有序数组
int arr[10] = { 2,5,8,12,14,22,33,34,39,40 };
int mFind;
cout << "请输入一个要查找的数:" << endl;
cin >> mFind;
bisearch(mFind, arr, 10);
system("pause");
return 0;
}