Divided \(k-d\) trees (Q1180539)

From MaRDI portal
scientific article
Language Label Description Also known as
English
Divided \(k-d\) trees
scientific article

    Statements

    Divided \(k-d\) trees (English)
    0 references
    0 references
    0 references
    0 references
    0 references
    27 June 1992
    0 references
    The paper proposes a new dynamic data structure, the divided \(k-d\)-tree, supporting range queries in two and more dimensions. A modified version furthermore supports splits and concatenates in all dimensions. Exact match queries can be answered in time \(O(\log(n))\). The worst case complexity for the dynamic updates and the range query is up to a multiplicative factor of \(O(\log^{1/d})\) equal to that of the best known data structure for range queries in linear storage: the quad-tree and the \(k-d\)-tree; these structures are, however, not easy to maintain under inserts and deletes, and if they are made dynamic at all they can't be balanced and therefore the worst case search and update time can easily degrade. The structure, which is easiest explained for dimension 2, shares in its design the key idea from the original \(k-d\)-tree; at every level of the tree divide the nodes in the subtree according to one of the dimensions. But rather than letting the dimensions alternate as in the original \(k- d\)-tree, the dimension remains fixed till about half way down the tree; subsequently the other dimension is used. By carefully balancing the tree size at the intermediate level the polylog factor in the performance estimates of the structure is optimized. The generalization for dimensions \(d>2\) is straightforward. The structure is build from \(2-3\)-trees for which a well known efficient split-concatenate algorithm exists; this structure, with some modifications can be extended to make the devided \(k-d\)-tree concatenable in all dimensions with an update query time equal to the divided \(k-d\)- tree as described before.
    0 references
    0 references
    0 references
    0 references
    0 references
    dynamic data structure
    0 references
    \(k-d\)-tree
    0 references
    range queries
    0 references
    quad-tree
    0 references
    0 references