#include <iostream>
using namespace std;
int BinarySearch(int *a, const int x, const int n); // 二分查找即折半查找
int BinSearch(int *a, const int x, const int n); // 这是函数的声明,
int main()
{
int t[] = { 1,2,3,4,5,6,7,8,9,12,13,14,15,10 };
int tem = 12;
int 结果;
//结果 = BinarySearch(t,tem,15);
结果 = BinSearch(t,tem,15);
if(结果 < 0)
cout << "没有找到:" << endl;
else
cout << "在t[" << 结果 << "]找到:" << tem << endl;
return 0;
}
int BinSearch(int *a, const int x, const int n)
{
int left = 0, right = n;
while(left <= right)
{
int middle = (left + right) / 2;
if(a[middle] > x)
right = middle - 1;
else if(a[middle] < x)
left = middle + 1;
else
return middle;
}
return -1;
}
int BinarySearch(int *a, const int x, const int n)
{
int low,high,mid;
low = 0, high = n-1;
while(low <= high)
{
mid = (low + high) / 2;
if(a[mid] == x)
return mid;
else if (a[mid] > x)
high = mid - 1;
else if(a[mid] < x)
low = mid + 1;
}
return -1;
}
算法:折半查找或二分查找
最新推荐文章于 2024-04-26 20:27:47 发布