系统二分查找实现

前言

二分查找不同变种和边界问题使得其在实际编程中难以实现,本文希望探索一种系统的二分查找实现,使在实际编程中应对各种变种能高效实现代码。本文无特殊情况会持续更新。
因左闭右开区间在编程中的优越性,现约定本文所有二分算法皆为左闭右开区间实现。

序列

特征下标(序列首、序列尾)

现有一序列A,各元素下标为 i,i+1,…,n-2,n-1,则称i为序列首,记为A0,n为序列尾,记为AN。
将序列首、序列尾统称为序列的特征下标。

序列的长度

序列长度为AN-A0,记为△A。
特殊地,A0=0的序列长度为AN。

合序列

定义

由两个及以上的序列不封闭的首尾相接构成合序列,用于构成合序列的序列称为分序列。

合序列的特征分序列

现有合序列A,将A的第一个分序列记为A0_,在合序列末尾构造一个长度任意的序列,记为AN_。

合序列的长度

合序列的长度为∑△Ai_(0<=i<N),记为△A。
特殊地,A0_0=0的序列长度为AN。

分序列之间特征下标的关系

Ai_N=A(i+1)_0
与△A(i+1)_=A(i+1)_N-A(i+1)_0联立得:
Ai_N=A(i+1)_N-△A(i+1)_(0<=i<N)

二分查找

分类

寻找元素都相等的子序列首

全部评论

相关推荐

ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
沉淀一会:1.同学你面试评价不错,概率很大,请耐心等待; 2.你的排名比较靠前,不要担心,耐心等待; 3.问题不大,正在审批,不要着急签其他公司,等等我们! 4.预计9月中下旬,安心过节; 5.下周会有结果,请耐心等待下; 6.可能国庆节前后,一有结果我马上通知你; 7.预计10月中旬,再坚持一下; 8.正在走流程,就这两天了; 9.同学,结果我也不知道,你如果查到了也告诉我一声; 10.同学你出线不明朗,建议签其他公司保底! 11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务