【求最优算法】输入一个GPS坐标(坐标经常变换),怎样按距离由近到远排序一组GPS坐标(这组坐标数量低则10万、高则百万千万)
k-d tree 和 quad tree
■网友
我正好是做空间数据库方向的PhD,这种问题常用的数据结构是R-tree及其变种,用一个优先队列维护其结点。算法很简单,数据结构不用自己实现。开源代码参考:https://github.com/libspatialindex/libspatialindex
■网友
看这组GPS坐标序列(10万什么的)是不是固定的,是固定的就可以预处理。一维的很多树都可以直接扩展到二维上,比如B树和B树的变种。简单粗暴的也有,大体的思想就是把地图网格化,把这些点放入网格中,判断给定点落入哪个网格。
■网友
给空间数据加上空间索引,存储到支持空间数据的DBMS中,然后要做关于距离的排序就很轻松了。现代的关系型数据库,比如Oracle、SQLServer和PostgreSQL都已经内置了对空间数据的支持,很好实现。@赵雨函 提到的格网,也正是空间索引的一种实现方式。http://baike.baidu.com/view/1346795.htm
■网友
用小根堆,具体实现借本数据结构的书就行。这样可以先算出排在前几位的坐标,逐渐由近到远显示结果,用户也不会因一次性给出结果而等待太久,不过堆比较占内存。
推荐阅读
- 江苏■1月4日江苏新增境外输入新冠肺炎确诊病例1例
- 李兰娟:国外疫情持续蔓延,严防输入是当下最重要任务
- 重庆彭水县境外输入无症状感染者的密接者均为阴性
- 病例■连云港通报8日新增1例境外输入新冠肺炎确诊病例详情
- 江苏■12月8日江苏新增境外输入新冠肺炎确诊病例1例
- 广州同一入境航班检出2例输入性恶性疟个案
- python 爬虫,咋获得输入验证码之后的搜索结果
- 广东新增确诊病例3例、无症状感染者1例,均为境外输入
- |小姐姐想要好看又好开的车 欧拉好猫是最优选吗?
- 为啥这个算法误差的看起来这么小
