c++ - 以有效的方式找到最近的点

标签 c++ algorithm geometry

我在二维平面上有一个点,例如 (x0,y0) 和一组 n 个点 (x1,y1)...(xn,yn),我想找到离 (x0,y0) 最近的点) 在某种程度上比尝试所有点更好。有什么解决办法吗?

我还应该说我的观点是这样排序的:

bool less(point a,point b){
  if(a.x!=b.x)
     return a.x<b.x;
  else
     return a.y<b.y;
 }

最佳答案

对二维使用四叉树 http://en.wikipedia.org/wiki/Quadtree

关于c++ - 以有效的方式找到最近的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4509798/

相关文章:

c++ - 将 double 值转换为其最简洁的字符串表示形式的最快或最有效的方法是什么?

c++ - 如何获取Windows中特定进程使用的物理内存和cpu?

c++ - cin.sync 和clear 不起作用?

algorithm - 在跳过列表中查找第 k 个元素 - 需要解释

python - 如何在 python 中使用 cv2 中的 hough 圆?

c++ - 将 int 放入 char 数组中是否需要放置 new 合法?

c++ - 大整数乘积除以大整数的商和余数

algorithm - 在节点的键更改后使多路树成为堆?

geometry - 如何确定圆弧的弧形截面(即扇形切片)中是否包含点(X,Y)?

language-agnostic - 如何找到多个地理区域的中心?