acgo题库
  • 首页
  • 题库
  • 学习
  • 天梯
  • 备赛

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
  • 竞赛
  • 讨论
  • 团队
  • 商城
登录
注册
题目详情提交记录(0)
  • 二分查找,解题思路

    #include<bits/stdc++.h>//万能头文件 using namespace std;//命名空间 int n,L,R,mid,a[105],x;//定义变量 int main(){//主函数 cin>>n;//输入n for(int i=1;i<=n;i++){ cin>>a[i];//循环输入数组 } cin>>x;//输入x L=1,R=n;//赋值L,R while(L<=R){//条件L<=R mid=(L+R)/2;//算出中间值,公式:mid=(L+R)/2 if(a[mid]==x){//如果中间数字相等,输出下标,return cout<<mid; return 0; } else if(a[mid]<x){//由于是升序数列,如果中间数字<x,那么L=mid+1 L=mid+1; } else if(a[mid]>x){//如果中间数字>x,那么R=mid-1 R=mid-1; } } cout<<"-1";//如果没有数字=x,那么输出-1 return 0; }

    userId_undefined
    shenzhangzheng
    时空双修者维度操控者出道萌新倔强青铜造物者俄罗斯套娃大师
    0阅读
    0回复
    0点赞

共61条

  • 1
  • 2
  • 3
  • 4
20条/页
跳至页
暂无数据

提交答案之后,这里将显示提交结果~

首页