Chris_kxt 2018-03-26 05:22 采纳率: 100%
浏览 1557
已结题

求解C++语言编写 急急

7-1 二分查找(20 分)
输入n值(1<=n<=1000)、n个整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。
输入格式:

输入共三行: 第一行是n值; 第二行是n个整数; 第三行是x值。
输出格式:

输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。

输入样例:

4
1 2 3 4
1
输出样例:

0
2

  • 写回答

4条回答 默认 最新

  • aabond 2018-03-26 06:34
    关注
     #include <iostream>
    
    using namespace std;
    void test(int a[],int n,int v);
    int main()
    {
        int n,i=0,v;
        int a[1000];
        cin>>n;
        while(i!=n)
        {
            cin>>a[i++];
        }
        cin>>v;
        test(a,n,v);
        return 0;
    }
    void test(int a[],int n,int v)
    {
        int i = 0;
        int index = n;
        while(index!=0){
                index/=2;
            if(a[index]==v){
                cout<<index<<"\n"<<i<<"\n";
                return;
            }else
            {
               i++;
            }
        }
        cout<<-1<<"\n"<<i<<"\n";
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?