Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Data structures 是否有用于查找与任意范围匹配的值的数据结构?_Data Structures_Language Agnostic - Fatal编程技术网

Data structures 是否有用于查找与任意范围匹配的值的数据结构?

Data structures 是否有用于查找与任意范围匹配的值的数据结构?,data-structures,language-agnostic,Data Structures,Language Agnostic,对于键相等查找,我们可以使用类似hashmap的数据类型,但是否有用于查找与任意范围匹配的值的数据结构 下面的Rust代码使用匹配表达式模拟这种情况,但我希望不必在代码中硬编码这些情况 设x=5; 匹配x{ d如果d println!(“d您可以创建一个范围列表,包含起始值和结束值。按起始值对该列表进行排序 当你得到一个查询时,对起始值进行二进制搜索。当你的值大于或等于起始值,小于或等于结束值时,你就知道你得到了正确的范围 如果总范围相对较小(例如,从1到1000的整数),则可以预填充范围引用数

对于键相等查找,我们可以使用类似hashmap的数据类型,但是否有用于查找与任意范围匹配的值的数据结构

下面的Rust代码使用
匹配
表达式模拟这种情况,但我希望不必在代码中硬编码这些情况

设x=5;
匹配x{

d如果d println!(“d您可以创建一个范围列表,包含起始值和结束值。按起始值对该列表进行排序

当你得到一个查询时,对起始值进行二进制搜索。当你的值大于或等于起始值,小于或等于结束值时,你就知道你得到了正确的范围

如果总范围相对较小(例如,从1到1000的整数),则可以预填充范围引用数组。例如,有4个范围,可能的查询值为0到10:

range1: 0, 2
range2: 3, 5
range3: 6, 8
range4: 7, 10
那么,您的数组将是
[range1,range1,range2,range2,range3,range3,range4,range4,range4]

您可以将其扩展到您想要的大小,具体取决于您想要花费的内存量。这将为您提供直接查找。

类似于
HashMap
,但也支持。可能重复的请参见;