【每日编程-353期】北京理工大学上机题(二)

教育   2024-11-12 09:50   广西  

北京理工大学上机题(二)


每日编程中遇到任何疑问、意见、建议请公众号留言或加入每日编程群聊739635399



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

输入样例:

请输入您要查找的数据:
14
-25
121

输出样例:

14是第5个数,查找次数为1。
-25是第2个数,查找次数为2。
查找失败。

解决方法:

(1)代码实现:

#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-250121429354776100};
    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;
}

明日预告:北京理工大学上机题(三)

建立一个学生信息系统,输入学生信息,输出有挂科同学的信息,再按照平均成绩从高到低排序输出。

输入样例:

5
zhaoyi 70 80 90 240
qianer 65 32 77 174
sunsan 100 55 68 223
lisi 86 77 90 253
wangwu 100 59 66 225

输出样例:

*[qianer] 65 32 77
*[sunsan] 100 55 68
*[wangwu] 100 59 66
lisi 86 77 90
zhaoyi 70 80 90
wangwu 100 59 66
sunsan 100 55 68
qianer 65 32 77



灰灰考研
最全的【计算机考研】【软件考研】考研信息! 最丰富的共享资料! 最大程度上帮助学渣狗登上研究生大门!
 最新文章