Multidimensional Balanced Binary Trees
IEEE Transactions on Computers
Randomized binary searching with tree structures
Communications of the ACM
Use of tree structures for processing files
Communications of the ACM
Multidimensional B-tree: An Efficient Dynamic File Structure for Exact Match Queries
GI - 10. Jahrestagung
On a multidimensional search problem (Preliminary Version)
STOC '79 Proceedings of the eleventh annual ACM symposium on Theory of computing
ACM SIGACT News
Efficient Techniques for Maintaining Multidimensional Keys in Linked Data Structures
ICAL '99 Proceedings of the 26th International Colloquium on Automata, Languages and Programming
Search data structures for skewed strings
WEA'03 Proceedings of the 2nd international conference on Experimental and efficient algorithms
Hi-index | 0.00 |
We present a new algorithm for the on-line d-dimensional dictionary problem which has many applications including the management of geometrical objects and geometrical searching. The dictionary problem consists of executing on-line any sequence of the following operations: INSERT(p), DELETE(p) and MEMBERSHIP(p), where p is any point in d-space. We introduce a clean structure based on balanced binary search trees, which we call d-dimensional balanced binary search trees, to represent the set of points. We present algorithms for each of the above operations that take O(d + log n) time, where n is the current number of points in the set, and each INSERT and DELETE operation requires no more than a constant number of rotations. Our procedures are almost identical to the ones for balanced binary search trees. The main difference is in the way we search for an element. Our search strategy is based on the principle “assume, verify and conquer” (AVC). We apply this principle as follows. To avoid multiple verifications we shall assume that some prefixes of strings match. At the end of our search we must determine whether or not these assumptions were valid. This can be done by performing one simple verification step that takes O(d) time. The elimination of multiple verifications is important because in the worst case there are &OHgr;(log n) verifications, and each could take &OHgr;(d) time.