4.15趣味百题第九题
一 问题描述
输入N个有序整数,利用二分法查找某个数。
二 设计思路
利用二分法不断缩短查找范围。
三 流程图
四 伪代码
定义一个数组
输入 要查找的整数
int low=0 high=N
while(low<=high)
{mid=(low+hige)/2
if(m<a[mid]){high=mid-1}
else if(m>a[mid]){low=mid+1}
else{k=mid}break}
if(k>=0)
输出k
else输出查找错误
五 c++代码
#include<iostream>
#include<math.h>
#define N 10
using namespace std;
int main(){
int k=-1,m;int low=0,high=9;int mid;
int a[N]={1,15,26,35,47,58,69,79,80,85};
for(int i=0;i<N;i++)
{
cout<<a[i]<<" ";
}
cin>>m;
while(low<=high)
{
mid=(low+high)/2;
if(m>a[mid]){low=mid+1;}
else if(m<a[mid]){high=mid-1;}
else{k=mid;break;}
}
cout<<m<<endl<<k+1;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现