Kinetic KD-trees and longest-side KD-trees

We propose a simple variant of kd-trees, called rank-based kd-trees, for sets of points in Rd. We show that a rank-based kd-tree, like an ordinary kd-tree, supports range search queries in O(n1-1/d + k) time, where k is the output size. The main advantage of rank-based kd-trees is that they can be efficiently kinetized: the KDS processes O(n2) events in the worst case, assuming that the points follow constant-degree algebraic trajectories, each event can be handled in O(log n) time, and each point is involved in O(1) certificates. We also propose a variant of longest-side kd-trees, called rank-based longest-side kd-trees (RBLS kd-trees, for short), for sets of points in R2. RBLS kd-trees can be kinetized efficiently as well and like longest-side kd-trees, RBLS kdtrees support nearest-neighbor, farthest-neighbor, and approximate range search queries in O((1/e) log2 n) time. The KDS processes O(n3 log n) events in the worst case, assuming that the points follow constant-degree algebraic trajectories; each event can be handled in O(log2 n) time, and each point is involved in O(log n) certificates.