二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
时间复杂度
O(logn)
自己写二分算法
左闭右开 左开右闭 | C++算法:二分查找旋转数组 |
左闭右开 | C++二分查找算法的应用:长度递增组的最大数目 |
左闭右开 | C++二分查找算法的应用:最小好进制 |
左开右闭 | C++二分查找算法:阶乘函数后 K 个零 |
左开右闭 | C++二分查找算法的应用:第 N 个神奇数字 |
一题三解(暴力、二分查找算法、单指针):鸡蛋掉落 | |
左闭右开 左开右闭 | C++ 二分查找算法:山脉数组中查找目标值 |
左开右闭 | C++二分查找算法:查找和最小的 K 对数字 |
左闭右开 | C++二分算法的应用:寻找峰值原理、源码及测试用例 |
有序映射
如果不做特别说明,key都是升序
值升序,淘汰键大的 | C++二分查找算法的应用:最长递增子序列 |
值升序,淘汰键大的 | C++二分查找算法的应用:俄罗斯套娃信封问题 |
C++二分查找算法的应用:将数据流变为多个不相交区间 | |
值降序,淘汰键大的 | C++二分查找算法:132 模式枚举3 |
值升序,淘汰键大的 | C++二分查找算法:规划兼职工作 |
值升序,淘汰键小的 | C++二分查找算法:132 模式解法二枚举2 |
对有序向量二分查找
有序集合
扩展阅读
视频课程
有效学习:明确的目标 及时的反馈 拉伸区(难度合适),可以先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771
如何你想快
速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176
相关下载
想高屋建瓴的学习算法,请下载《闻缺陷则喜算法册》doc版
https://download.csdn.net/download/he_zhidan/88348653
洒家想对大家说的话 |
闻缺陷则喜是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。 |
墨家名称的来源:有所得以墨记之。 |
如果程序是一条龙,那算法就是他的是睛 |
测试环境
操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境:
VS2022 C++17