algorithm - 处理大型项目的空间复杂性

标签 algorithm space-complexity

我在一家初创公司被问到这个问题

If you are asked to design Maps like Bing Maps how would you estimate the space complexity ?

对于 map ,我能想到的唯一答案是,空间是恒定的,但我不确定我的方向是否正确。

如何处理这样的问题?

最佳答案

如果查看 map 服务的详细信息,您会注意到它们有多个图层。对于每一层,您可以根据源数据的分辨率及其覆盖的区域来估算大小:

size = sum(foreach layer: layer.area * (layer.resolution)^2 * layer.elementsize)

卫星图像是最容易计算的,因为您需要以某种基本分辨率级别覆盖全局。但是你可以期待一些源 Material 集中在感兴趣的区域,比如航空摄影;这些可能会具有更高的分辨率,但总面积更小。

您将希望保存全分辨率数据的缩小版本,以便方便地提供缩小显示。但是,这应该只占用全分辨率数据所需空间的一小部分。图像大小每减少 2 倍,附加数据的大小就会减少 4 倍; 2 倍的额外大小 image pyramid将是全分辨率数据的 1/3。

最后,您还需要地理信息,例如道路、地理区域和兴趣点。此数据的大小自然非常灵活,但您可以通过评估特定城市的商业地理数据库的大小并按人口缩放来获得某种粗略估计。

关于algorithm - 处理大型项目的空间复杂性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8425563/

相关文章:

c++ - std 中是否有折叠算法(或失败 : boost) available?

memory - 为什么哈希表比其他数据结构占用更多内存?

java - 递归算法的空间复杂度

string - 如何从字符串集中找到冲突最少的最短子序列集

python - 序列python中的插入算法

c++ - 通过对已排序的 vector 使用二进制搜索来定位未排序的 vector 中的元素

javascript - 以下算法的 3Sum 问题的时空复杂度是多少?

algorithm - BFS 的空间复杂度

algorithm - 如何计算函数的空间复杂度?

algorithm - 人类可解释的监督机器学习算法