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

 

posted @   混沌武士丞  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示