系统二分查找实现

前言

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

序列

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

现有一序列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)

二分查找

分类

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

全部评论

相关推荐

Java抽象带篮子:难蚌,点进图片上面就是我的大头😆
点赞 评论 收藏
分享
勤奋努力的椰子这就开摆:美团骑手在美团工作没毛病
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务