当前位置:网站首页>在一个有序数组中查找具体的某个数字(二分查找or折半查找)
在一个有序数组中查找具体的某个数字(二分查找or折半查找)
2022-07-23 10:36:00 【白杨0】
具体思路
二分查找只适用于递增或递减的数组,在这里我们统一为递增数组,下面,我们先来简单介绍一下二分查找的具体思路。给出下面一组数组{1,2,3,4,5,6,7,8,9,10}。它们的下标为0~9,我们要在这组数组中找到数字7。第一次查找,最左边和最右边的下标之和的平均值为4,我们锁定了数字5,因为5比7小,所以我们要找的数字只可能在5的右边,5左边的数字可以忽略了。第二次查找,数字6和数字10的下标之和的平均值为7,我们锁定了数字8,因为8比7大,所以要找的数字只可能在8的左边。接着又进行第三次查找……找到数字7的过程中,我们只用了四次查找,可以看出效率比普通查找高出不少。

代码实现
int main()
{
int arr[] = {
1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
int left = 0;
int right = sz - 1;
int k = 7;
while (left <= right)
{
int mid = (left + right) / 2;
if (arr[mid] < k)
{
left = mid + 1;
}
else if (arr[mid] > k)
{
right = mid - 1;
}
else if (left = right)
{
printf("找到了,下标是%d\n", mid);
break;
}
}
return 0;
}
运行结果

边栏推荐
- 爬虫中selenium实现自动给csdn博主文章点收藏
- [test platform development] 20. Complete the function of sending interface request on the edit page
- 如何加速矩阵乘法——优化GEMM (CPU单线程篇)
- 百度工程师眼中的云原生可观测性追踪技术
- idea一次启动多个项目
- Cloud native observability tracking technology in the eyes of Baidu engineers
- 报错 | cannot read property ‘_normalized‘ of undefined
- The accuracy of digital addition
- Fastapi application joins Nacos
- 解决kotlin写Android项目编译报Execution failed for task ‘:app:kaptDebugKotlin‘.异常
猜你喜欢

CBOC signal modulation and demodulation simulation based on MATLAB, output its correlation, power spectrum and frequency offset tracking

深入理解CAS (自旋锁)

Cloud native observability tracking technology in the eyes of Baidu engineers

安全合理用电 收获清凉一“夏”

Head pose estimation principle and visualization_ Loveliuzz's blog - Programmer's Homestead_ Head posture estimation

安全7.18作业
![[CTFHub]JWT 的头部和有效载荷这两部分的数据是以明文形式传输的,如果其中包含了敏感信息的话,就会发生敏感信息泄露。试着找出FLAG。格式为 flag{}](/img/d0/133d628a304f5c6b5f0d514c9fe222.jpg)
[CTFHub]JWT 的头部和有效载荷这两部分的数据是以明文形式传输的,如果其中包含了敏感信息的话,就会发生敏感信息泄露。试着找出FLAG。格式为 flag{}

raid homes and plunder houses!

基于simulink的双闭环矢量控制的电压型PWM整流器仿真

如何实现多个传感器与西门子PLC之间485无线通讯?
随机推荐
RSA加密的使用
真人踩过的坑,告诉你避免自动化测试常犯的10个错误
Solve the problem that kotlin writes the Android project compilation report execution failed for task ': app:kaptdebugkotlin'. Exception
Start process of activity
基于matlab的BOC调制解调的同步性能仿真,输出跟踪曲线以及不同超前滞后码距下的鉴别曲线
Chapter 4 use%rest API classes create rest services
什么是服务器托管及和虚拟主机的区别
第四章 使用 %REST.API 类创建 REST 服务
Common SQL of Oracle Report
dataframe.groupby学习资料
Selenium in the crawler realizes automatic collection of CSDN bloggers' articles
Exploration and practice of Ali multimodal knowledge atlas
VSCode 更新后与tab相关快捷键无法使用
NVIDIA vid2vid paper reproduction
Building personal network disk based on nextcloud
Kettle实现共享数据库连接及插入更新组件实例
初识C语言函数
基于双目相机拍摄图像的深度信息提取和目标测距matlab仿真
Multiple backpacks!
如何实现多个传感器与西门子PLC之间485无线通讯?