#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++实现二分查找
最新推荐文章于 2025-11-03 21:19:27 发布
该博客展示了如何用C++编程实现二分查找算法。通过读取用户输入的有序序列和目标键值,程序会执行二分查找并输出结果。如果找到目标值,输出‘找到了数字’;反之,输出‘找不到!’。这是一个基础的算法应用实例。
1675

被折叠的 条评论
为什么被折叠?



