0
点赞
收藏
分享

微信扫一扫

蓝桥杯7(北理工复试2—二分法查找)

舍予兄 2022-01-21 阅读 28

1.题目

二分查找{-36 -25 0 12 14 29 35 47 76 100},对上述十个数进行二分查找。

输入样例:
请输入您要查找的数据:
14
-25
121
输出样例:
14是第5个数,查找次数为1。
-25是第2个数,查找次数为2。
查找失败。

2. 代码

很简单的

#include <iostream>
using namespace std;
//直接是二分查找的应用
int count_num = 0; //记录查找的次数
int binarySearch(int a[], int n, int key)
{
    int low = 0, high = n - 1;
    while (low <= high)
    {
        count_num++;
        int mid = (low + high) / 2;
        if (a[mid] == key)
            return mid;
        if (a[mid] > key)
            high = mid - 1;
        else
            low = mid + 1;
    }
    return -1;
}
int main()
{
    int a[10] = {-36, -25, 0, 12, 14, 29, 35, 47, 76, 100};
    cout << "请输入需要查找的数:";
    int num = 0;
    cin >> num;
    int n = binarySearch(a, 10, num);
    if (n >= 0)
        cout << num << "是第" << (n + 1) << "个数,查找的次数为" << count_num << endl;
    else
        cout << "查找失败" << endl;
    system("pause");
    return 0;
}
举报

相关推荐

0 条评论