算法 Class 006(二分搜索)

一、查找一个数

在一个有序数组中查找数字,每次一循环可 砍掉一半的值,只要确定了 arrmid 与 num 之间的关系。

大于num 忽略掉 mid及右边的数字

小于 num 忽略掉 mid 及左边的数字

二、 找大于等于 num 的最左位置

意思就是该下标及右边的数都是大于等于 num 的

与上面找一个数的区别 ,就是多用一个变量去记下标,如果

arrmid 大于等于 num,此时 mid 右边的都是满足的,修改右边界,记一次下标

arrmid 小于 num ,此时 mid 左边都是小于 num 的,修改边界即可。

然后写个暴力查找(遍历而已),用Class 005 的内容 验证,可得出上 code大概率是对的

对数器。

后期的优化思想是 ,如果失败了,拷贝一份当前数组的的内容,拷贝 a1,a2的值,方便调试看看是哪儿出了问题,因为刚才就出问题了,然后在else 代码块那里打了个断点,然后直接 Fn + F5(我用的笔记本),跳转到断点,然后观看监视窗口,发现了错误(这样感觉也行,主要是怕监视窗口也看不出错误),就得拷贝数据,观察一下了。


找 小于等于 num 最右边的下标,需要修改一下判断和小于等于记 坐标就行

相关推荐
j7~6 小时前
【C++】模板初阶--函数模板,类模板详解
数据结构·c++·算法·函数模板·类模板·函数模板实例化
IT策士6 小时前
Redis 从入门到精通:数据结构Hash 与 List
数据结构·redis·哈希算法
HZ·湘怡6 小时前
数据结构之排序算法 (1)--插入排序
c语言·数据结构·算法·排序算法
阿旭超级学得完6 小时前
Linux基础指令 四(apt,vim,git,cgdb)
linux·服务器·开发语言·数据结构·c++·git·vim
j7~7 小时前
【算法】专题一:双指针之移动零,复写零,快乐数
数据结构·c++·算法·双指针·快乐数·移动零·复写零
cfm_291417 小时前
Redis五大基本数据结构底层了解
数据结构·数据库·redis
如竟没有火炬17 小时前
最大矩阵——单调栈
数据结构·python·线性代数·算法·leetcode·矩阵
Lyyaoo.1 天前
【数据结构】HashMap底层存储+扩容机制+线程安全【待更新】
数据结构·安全·哈希算法
如何原谅奋力过但无声1 天前
【灵神高频面试题合集09-13】二叉树、二叉搜索树
数据结构·算法·leetcode
xqqxqxxq1 天前
树结构技术学习笔记
数据结构·笔记·学习