我正在建立一个mySQL表,列出n维中的点,每个维都被索引。给定n维系统中的任何点,我希望能够按照它们与所选点的距离顺序输出所有其他点。

一个简单的解决方案是使用勾股定理来计算到每个点的距离... sqrt(x ^ 2 + y ^ 2)= z。我一直在寻找一种更有效的方法。只需要一个大概的订单,所以我很开放。

谢谢。

-中

最佳答案

除了给出的内容外,您还可以考虑“合并”您的点-即(至少在精神上)在“地图”上绘制网格,并根据它们属于哪个正方形来跟踪点。基本上,您从相同正方形中的点开始,然后是围绕所选点的正方形的“环”中的点,然后是向外的下一环,依此类推。根据您使用的网格大小,您可以根据自己的喜好使它大致精确或近似。当然,2D网格用于2D点-如果具有更大的尺寸,则必须增加网格的尺寸才能匹配。

10-06 07:33