二叉树深度遍历算法,多叉树的深度优先遍历

  二叉树深度遍历算法,多叉树的深度优先遍历

  在我的项目中,我试图编写代码来检测二维空间中非点粒子之间的碰撞。我的目标是检测成千上万个粒子的碰撞,每个时间步至少几次。我知道这对python的要求非常高。我跟踪了实现这种四叉树的博文,它显著减少了我需要做的配对检查的数量。所以我觉得我面临的问题就是这个功能。defget_index(自身,粒子) :

  索引=-1

  bounds=particle.aabb

  v _ midpoint=self . bounds . x self.bounds.width/2

  h _ midpoint=self . bounds . y self.bounds.height/2

  top _ quad=bounds . yh _ midpointandbounds . ybounds . heighth _ midpoint

  bot_quad=bounds.y h_midpoint

  ifbounds。XV _ midpointandbounds . x bounds . width v _ midpoint:

  如果top_quad:

  指数=1

  elif bot_quad:

  指数=2

  elif bounds.x v_midpoint:

  如果top_quad:

  指数=0

  elif bot_quad:

  指数=3

  回报指数

  这个函数是我第一次分析的瓶颈。调用次数非常多,需要快速扩展。最初,我们注意到只有通过提供具有对齐的对象轴的边界框,我们才能以所需的速度工作,并识别可能实际碰撞的粒子。现在,将粒子列表传递给四叉树构造函数,并使用类属性aabb检索边界。在

  有什么方法可以传递类似于对象指针的东西,而不是整个对象?除此之外,还有其他优化上述代码的建议吗?在

二叉树深度遍历算法,多叉树的深度优先遍历