版权声明:本文为博主原创文章,转载请注本文链接。
/************************
author's email:wardseptember@gmail.com
date:2018.2.7
************************/
#include <iostream>
using namespace std;
#define maxSize 10
int Bsearch(int R[], int low, int high, int k)//折半查找法
{
int mid;
while (low <= high)
{
mid = (low + high) / 2;
if (R[mid] == k)
{
return mid;
}
else if (R[mid] > k)
{
high = mid - 1;
}
else
{
low = mid + 1;
}
}
return -1;
}
int main()
{
int R[maxSize] = { 0,11,23,34,47,52,68,77,81,99 };
int k = 47;
if (Bsearch(R, 0, maxSize - 1, k) == -1)
{
cout << "查找失败,不存在此元素!" << endl;
}
else
{
cout <<"查找成功,此元素所在数组中的下标为(下标从0开始):"<< Bsearch(R, 0, maxSize - 1, k)<<endl;
}
system("pause");
return 0;
}