Arrays 数组对字典-战斗!什么';搜索大型数据集的最快方法是什么?
给所有计算机科学家打电话-我需要你的专家建议:) 我的问题是:Arrays 数组对字典-战斗!什么';搜索大型数据集的最快方法是什么?,arrays,performance,dictionary,swift,mapkit,Arrays,Performance,Dictionary,Swift,Mapkit,给所有计算机科学家打电话-我需要你的专家建议:) 我的问题是: 我有一个地图应用程序,我已经将世界划分为1000万个可能的固定大小的正方形(纬度/经度,即双/双数据类型)。让我们称之为数据集D1 第二组数据称为D2,大约有20000个大小相同的正方形(纬度/经度,或双/双数据类型),表示我的应用程序中感兴趣的位置 当用户放大到足够远时,我希望显示当前视图中所有感兴趣的方块,但不显示视图外的方块,因为这对于应用程序来说太多了,无法处理(生成覆盖图等),而不会完全陷入困境 因此,与其提交2000
- 我有一个地图应用程序,我已经将世界划分为1000万个可能的固定大小的正方形(纬度/经度,即双/双数据类型)。让我们称之为数据集D1
- 第二组数据称为D2,大约有20000个大小相同的正方形(纬度/经度,或双/双数据类型),表示我的应用程序中感兴趣的位置
- 当用户放大到足够远时,我希望显示当前视图中所有感兴趣的方块,但不显示视图外的方块,因为这对于应用程序来说太多了,无法处理(生成覆盖图等),而不会完全陷入困境
感谢任何/所有的建议-字典是最好的选择吗?还有其他的建议吗?在这里的评论中引用一些例子。创建沿X轴和Y轴排序的二维数组。然后进行二进制搜索以查找NW角点和SE角点元素。那么,这两个角所形成的框中的所有元素都需要显示出来。这很容易是XY问题,如果例如“代码> MAPKIT < /代码>实现了一些已经做过的事情(即参见)。考虑至少添加<代码> SWIFT 和<代码> MAPKIT < /Cord>标签(您必须删除2个当前标签)。还考虑缩短问题和增加一个更具体的题目。它看起来是一个相对简单的问题,它可能或可能不需要复杂的解决方案,但是不管它不需要用这么长的时间来描述。至于一般的问题。我猜想最佳的方法是使用一个双重排序的二维数据结构。通过经度和纬度,或者仅通过两个ds。但不确定哪一个特定的ds是最佳的。我同意@BroSlow,2D数据结构可能是最佳的。然后,您可以只计算数据位于哪个索引之间,并传递该索引。如果您想优化缓存,您也可以尝试阻止数据,但我怀疑它是否会带来很多好处增益,除非有数据的重用。哦,这个参考可能会帮助您做出决定:它只说明复杂性,但记住它仍然很重要。