#include<iostream>
using namespace std;
//二分查找
void test(int *arr, int low, int high, int key)
{
int mid = 0;
while (high >= low)
{
mid = (high + low) / 2;
if (arr[mid] == key)
{
cout << "找到了数字" << arr[mid] << endl;
return;
}
else if (arr[mid] < key)
{
low = mid + 1;
}
else
{
high = mid - 1;
}
}
cout << "找不到!" << endl;
}
int main()
{
int num = 0, key = 0;
cout << "请输入需要查找的有序序列个数:" << endl;
cin >> num;
int *arr = new int[num];
cout << "请输入这" << num << "个有序序列(从小到大):" << endl;
for (int i = 0; i < num; i++)
{
cin >> arr[i];
}
while (key != 65535)
{
cout << "请输入需要查找的键值:" << endl;
cin >> key;
test(arr, 0, num - 1, key);
}
system("pause");
return 0;
}
c++实现二分查找
最新推荐文章于 2024-05-16 08:53:55 发布