算法 Class 006(二分搜索)

一、查找一个数

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

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

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

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

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

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

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

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

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

对数器。

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


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

相关推荐
一杯咖啡Miracle11 分钟前
代码随想录算法训练营第三十五天|416. 分割等和子集、698.划分为k个相等的子集、473.火柴拼正方形
数据结构·python·算法·leetcode
猎猎长风17 分钟前
【数据结构和算法】4. 链表 LinkedList
数据结构·算法·链表
刃神太酷啦2 小时前
栈和队列--数据结构初阶(2)(C/C++)
c语言·数据结构·c++·算法·leetcode
keep intensify8 小时前
杨氏矩阵、字符串旋转、交换奇偶位,offsetof宏
c语言·开发语言·数据结构·算法·矩阵
春天里的小帆船8 小时前
4.20刷题记录(单调栈)
开发语言·数据结构
kk”8 小时前
二叉树的顺序结构及实现
c语言·数据结构
王齐家040611 小时前
每日一题算法——移除链表元素、反转链表
数据结构·算法·leetcode·链表
努力也学不会java11 小时前
【Redis】Redis中的常见数据类型(一)
数据结构·数据库·redis·缓存·bootstrap
沐墨专攻技术12 小时前
顺序表和链表的区别(C语言)
c语言·数据结构·链表·顺序表·链表和顺序表的区别
yatingliu201912 小时前
牛客 | OJ在线编程常见输入输出练习
数据结构·c++·算法