一问题描述
存在一个数组内部保存着十个数然后输入一个数利用二分法查找找到的话输出那个数的下标如果没找到输出not be found
二设计思路
二分法将数组的最大和最小的角标定义出来通过将所输入的数与数组的中间值比较进行范围的选择如此循环最后会找出与输入的数最近似的数
三程序流程图
四伪代码实现
#include<iostream>
using namespace std;
int main(){
int N=10,k=-1,mid,high=N-1,low=0,m;
int a[N]={-3,4,7,9,13,45,67,89,100,180};
cout<<"输入所选的值"<<endl;
cin>>m;
while(low<=high){
mid=(low+high)/2;
if(m<a[mid]){
high=mid-1;
}
if(m>a[mid]){
low=mid+1;
}
if(m==a[mid]){
k=mid;
break;
}
}
if(k>=0){
cout<<k<<endl;}
else{
cout<<"not be found"<<endl;
}
return 0;
}
五代码实现
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理