Quadtree
Recursively subdivide a rectangular region into four quadrants once it holds too many points, so range queries and collision checks only touch nearby points instead of every point.
Recursively subdivide a rectangular region into four quadrants once it holds too many points, so range queries and collision checks only touch nearby points instead of every point.