为什么点区域四叉树搜索(用于碰撞检测)是线性时间?
Why is a Point-Region Quadtree search (for collision detection) linearithmic time?
四叉树完全创建后,为什么比较操作(用于n
对象的碰撞检测)需要线性n log(n)
时间?节点按 region/quadrant 递归拆分,搜索将向下扫描树,修剪掉不在搜索坐标内的路径,最终在碰撞节点的边界内找到或找不到目标节点。每次操作都是比较一个分区n
,好像是log(n)
次,不是n log(n)
.
要找到 n
个物体的所有碰撞(以及揭示最坏情况下的任何一次碰撞),应该执行大约 n
个动作 - 检查每个物体的附近。
如您所写,每次此类检查都需要 O(logn)
时间,因此总时间达到 O(nlogn)
四叉树完全创建后,为什么比较操作(用于n
对象的碰撞检测)需要线性n log(n)
时间?节点按 region/quadrant 递归拆分,搜索将向下扫描树,修剪掉不在搜索坐标内的路径,最终在碰撞节点的边界内找到或找不到目标节点。每次操作都是比较一个分区n
,好像是log(n)
次,不是n log(n)
.
要找到 n
个物体的所有碰撞(以及揭示最坏情况下的任何一次碰撞),应该执行大约 n
个动作 - 检查每个物体的附近。
如您所写,每次此类检查都需要 O(logn)
时间,因此总时间达到 O(nlogn)