如何获得分区区间中值所属的分区
How to get partition where value belongs in partitioned interval?
我有一个区间,它被划分为许多较小的分区。
没有空格也没有重叠的间隔
E。g: (0;600)
分为:
-
(0;10>
-
(10;25>
-
(25;100>
-
(100;125>
-
(125;550>
-
(550;600)
现在我有大量的值,我需要得到每个值的分区id。我可以存储一组值,将这个区间划分为更小的区间。但如果所有值都属于最后一个分区,则需要遍历整个数组。
所以我正在寻找任何更好的解决方案来存储这些间隔。我想要简单-最大150行长度的cca算法,我不想使用任何库,除了std.
由于分区中没有"空白",因此每个分区的末尾都是冗余的(它与下一个分区的开头相同)。
并且由于您已经对分区列表进行了排序,您可以简单地使用二进制搜索,并使用std::upper_bound
。
实际操作
编辑:校正(upper_bound
,不是lower_bound
)。
你可以改进你的搜索算法。
将所有的范围放入数组中,然后使用二进制搜索算法搜索合适的范围。
它将花费O(logn),并且非常容易实现。
相关文章:
- 正在查找文档以获得PS4平台的C++中的设备信息
- 如何从C++中的依赖类型中获得它所依赖的类型
- 欧拉项目#8答案是大以获得有效答案
- 如何使用C/C++在MacOSX中获得键盘布局
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 如何在不产生任何垃圾的情况下获得C中的像素
- 有没有一种方法可以在编译时获得作用域类名
- 如何在C++中获得"静态纯虚拟"功能?
- 是否有类似std::lower_bound的函数,而不需要排序/分区输入
- Python中的for循环与C++有何不同
- 如何设置一个范围来提取我想要获得的信息
- 在多次运行中获得一致的callgrind输出
- 通过错误处理,在C++中可靠地获得用户十六进制输入
- 如何在Directwrite中获得给定字体的可用OpenType功能
- 在我的代码中,获得最大的Pair Wise产品C++和输出并不总是正确的
- 当用户在qtablewidget中输入单元格时,如何获得信号?C++
- 未获得字符串中的预期输出
- 我如何获得分区偏移在OS X与C/ c++
- 如何获得分区区间中值所属的分区
- 为什么这个程序在分区之前没有获得正确的条件?