Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
您好,我需要以下帮助来制作算法:
假设一个具有 xmax、xmin、ymin、ymax 的二维空间域,空间中有“n~10,000”个点。
浏览点位置列表。
当盒子里有最大的点数(比如说 10)时,盒子分成 4 个相等的小盒子。
然后再次检查每个较小的框是否超过最大值。的点。它将再次分成 4 个相等的小盒子......直到盒子的点数少于每个盒子的最大点数。
有什么建议我可以如何制作这个算法?请?
干杯!
您应该尝试自己对此进行编程,然后在遇到问题时再次询问。
为了让您开始,这里有一个想法:创建两个索引数组,它们从 0 上升到您拥有的点数。然后使用点的 x 值对一个索引数组进行排序,并使用 y 值对另一个索引数组进行排序。然后,您可以通过简单地从每个数组中获取第n 个条目并结合您获得的 2 个点的 x/y 最大值来读取您需要的内容。(另外:要获得下一个交叉点,您不需要再次排序,只需使用下一个第 n 个条目)