长长的&搜索最近的元素
本文关键字:元素 最近 搜索 长长的 | 更新日期: 2023-09-27 18:08:00
情况如下:
我有一些对象包含:
- a起始
long
- an ending
long
- a
string
代码
这些对象longs
是顺序的。例如:
var obj1 = new {From = 0, To = 16777215, Code = "aaa"};
var obj2 = new {From = 16777216, To = 16777471, Code = "bbb"};
像这样的物体几乎有15万个。
目前我将所有内容存储在SQL表中。
问题是我需要从这个列表中搜索。例如,我需要查找编号为16777470的对象,这将是对象2 "bbb"。
问题:是否有一种有效的方法可以在内存中存储如此多的对象,并能够在其中查找元素,拥有一个长并且查找最近的元素?
如果对象是顺序的,那么您只需要存储'from'数字。
var obj1 = new {From = 0, Code = "aaa"};
var obj2 = new {From = 16777216, Code = "bbb"};
这将节省内存。
那么,如果所有的对象都在一个有序列表中,那么二进位切应该解决有效的搜索问题。
主要的性能影响可能是在设置列表时,所以我认为使用SQL数据库的建议可能是明智的。
从内存效率的角度来看,我不确定。
思考:你当然也不想搜索整个列表,所以可能需要某种二级结构(某种索引或查找????)。
不管怎样,我偶然发现了这个:如何从列表中获得最接近的数字
怀疑这个方法可能有点处理器密集,因为它没有二级索引。