怎样快速求出离当前位置最近的点?
已知r维空间中某点集S,怎样快速求出离当前位置最近的点?
最简单的算法就是枚举点集S,逐个逐个与当前位置进行比较,最后输出距离最近的那个点。该算法复杂度为O(n),若点集S有上百万个点,那么查询速度将会很慢。
主要是需要解决2维、3维空间中的最近点查询问题,如果有高维空间算法就更好。主要问题类型:
1.二维平直空间。最简单的模型。
2.二维曲面空面。比如在地图上查找最近的地理标注。一般地理标注的数量极大,至少上百万,可以用于验证算法对大规模数据的效率。
3.三维平直空间。比如色彩量化,匹配与当前颜色最接近的调色板颜色。调色板颜色条目数一般为256,可以用于验证算法对小规模数据的效率。
点集S是固定的,不需要考虑动态添加、删除问题。一般将点集S的数据放在普通的关系型数据库中。