-2

您好,我需要以下帮助来制作算法:

假设一个具有 xmax、xmin、ymin、ymax 的二维空间域,空间中有“n~10,000”个点。

  1. 浏览点位置列表。

  2. 当盒子里有最大的点数(比如说 10)时,盒子分成 4 个相等的小盒子。

  3. 然后再次检查每个较小的框是否超过最大值。的点。它将再次分成 4 个相等的小盒子......直到盒子的点数少于每个盒子的最大点数。

有什么建议我可以如何制作这个算法?请?

干杯!

4

1 回答 1

0

您应该尝试自己对此进行编程,然后在遇到问题时再次询问。

为了让您开始,这里有一个想法:创建两个索引数组,它们从 0 上升到您拥有的点数。然后使用点的 x 值对一个索引数组进行排序,并使用 y 值对另一个索引数组进行排序。然后,您可以通过简单地从每个数组中获取第n 个条目并结合您获得的 2 个点的 x/y 最大值来读取您需要的内容。(另外:要获得下一个交叉点,您不需要再次排序,只需使用下一个第 n 个条目)

于 2013-02-17T18:28:49.370 回答