我有451个座标城市。现在,我想计算每个城市之间的距离,然后按该距离排序一些结果。现在我有两个选择:


我可以运行一个循环,该循环将计算每种可能的城市组合的距离并将其存储到表中,这将导致大约20万行。
或者,我可以不进行预先计算就离开城市,然后在显示结果时(每页大约30个),分别计算每个城市的距离。


我不知道哪种方法对性能更好,但是我更愿意选择第一种方法,在这种情况下,我还要担心:是否有办法减少行数?目前,我将可能性计为451^2,但我想可以将其除以2,因为City1-City2情况下的距离与City2-City1相同。

谢谢

最佳答案

如果您的城市表或多或少是静态的,则绝对应该对所有距离进行计算,并将它们存储在单独的表中。在这种情况下,您将有(451 ^ 2/2)行(只需确保City1的id始终低于City2的ID(或者反过来,并不重要))。

07-28 08:54