kD-tree?
