注册网站需要visa怎么办,做枪版电影网站赚钱,100个详情页设计图,深圳口碑好的vi设计公司目录 Everyday English
前言
二分查找
例题
50分做法
分析利弊
示例代码
示例截图
100分做法
二分查找是什么#xff1f;
这题该怎么用二分查找#xff1f;
示例代码
示例截图
结尾 Everyday English
Look before you leap.
三思而后行
前言
今天是2024年的…目录 Everyday English
前言
二分查找
例题
50分做法
分析利弊
示例代码
示例截图
100分做法
二分查找是什么
这题该怎么用二分查找
示例代码
示例截图
结尾 Everyday English
Look before you leap.
三思而后行
前言
今天是2024年的第一天新一年新气象新起点在这也祝愿大家
工作顺利身体健康。好好学习天天向上
二分查找
二分法我们在上节课已经介绍过了这节课我们来实现二分查找。
没看过的一定要先看
从入门到精通30天带你学会C【第十天猜数游戏】-CSDN博客文章浏览阅读2次。【全网最细】猜数游戏他终于来了内涵必胜策略哦https://blog.csdn.net/m0_73787047/article/details/135323413
例题
先看题目给定一个长度为n序列和一个整数m问这个序列里面有没有m
50分做法
分析利弊
把整个数组遍历一遍看看有没有m。
优点简单粗暴容易想到。
缺点数据一多轻松超时。
示例代码
#includebits/stdc.h
using namespace std;
int main()
{long long n,m,a[100000];cinnm;for(int i1;in;i){cina[i];}for(int i1;in;i){if(a[i]m) {coutYesendl;return 0;}}coutNoendl;return 0;
}
示例截图 100分做法
这就需要用到我们的二分查找了。
注意二分查找一定要是有序的序列
二分查找是什么
回忆一下我们上次的猜数游戏的必胜策略从始至终都是有一个范围的我们通过不断地把范围二分缩小最终得到答案。
在二分查找中也要有一个范围或者叫区间。在这个区间有两个端点分别叫左端点和右端点。
那我们二分还得有个中点就像猜数游戏每次都要猜区间地一半一样。
而中点地计算方法是左端点右端点/ 2
为了方便描述我们在编程中一般把左端点叫作left右端点叫作right中点叫作mid。
这题该怎么用二分查找
我们可以先把序列用sort排序一下紧接着确定好左右端点及mid。
其实这两个端点就像两个指针一样
如果left1right的话说明两个指针不能在缩小了此时如果还未找到输出no。
示例代码
#includebits/stdc.h
using namespace std;
int main()
{long long n,m,a[100000],left,right,mid;cinnm;for(int i1;in;i) cina[i];sort(a1,an1);left1; rightn;while(left1!right){mid(leftright)/2;if(a[mid]m) rightmid-1;if(a[mid]m) leftmid1;if(a[mid]m){coutYesendl;return 0;}}coutNoendl;return 0;
}
示例截图 结尾
最后认识一下我是爱编程的小芒果一个爱编程的小学生我们2024年见