在区间内元素的二分查找

搜索一个区间内的所有元素(在一个n元素的排序向量中)。它以log(n)为单位运行。

753下载

更新4月15日

查看许可协议

搜索位于指定间隔内的元素。
搜索x (n个元素的排序向量)中所有元素在区间内的下标。
该算法使用二进制搜索,因此运行时间为log(n)
输入:
X:按升序排列的数值向量
(如2、7、20日……120)
参考点(区间中心)的数值
Tol:对应间隔宽度的1/2的数值
第四个输入参数:数值(可选)。允许定义在指定间隔内x的最大元素数。这对于加快搜索是很有用的。

输出:
索引:x中位于区间[ref-tol ref+tol]的元素的索引
如果在x中没有找到ref,则indexes为空。

引用作为

罗伯特·奥尔米(2023年)。在区间内元素的二分查找(//www.tianjin-qmedu.com/matlabcentral/fileexchange/26680-binary-search-of-elements-lying-within-an-interval), MATLAB中央文件交换。检索

MATLAB版本兼容性
使用R2008a创建
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!
版本 发表 发布说明
1.4.0.0

修正了一个无符号输入数组(例如uint16)的错误。感谢Igor Varfolomeev的评论。

1.3.0.0

-增加了第38-55行,以考虑下界小于最小值(x)或上界大于最大值(x)的情况
加强了第93行和第117行中的条件,以避免在(to-1)==0或(from+1)>长度(x)时出现错误

1.1.0.0

错误修复

1.0.0.0