We reopen the issue of finding an implicit data structure for the dictionary problem. In particular, we examine the problem of maintaining Ò data values in the first Ò locations of an array in such a way that we can efficiently perform the operations insert, delete and search. No information other than Ò and the data is to be retained; and the only operations which we may perform on the data values (other than reads and writes) are comparisons. Our structure supports these operations in Ç´ÐÓ ¾ Ò ÐÓ ÐÓ Òµ time, marking the first improvement on the problem since the mid 1980’s. En route we develop a number of space efficient techniques for handling segments of a large array in a memory hierarchy. We achieve a cost of Ç´ÐÓ Òµ block transfers like in regular B-trees, under the realistic assumption that a block stores ª´ÐÓ Òµ keys, so that reporting Ö consecutive keys in sorted order has a cost of Ç´ÐÓ Ò·Ö µblock transfers. Being implicit, our B-t...
Gianni Franceschini, Roberto Grossi, J. Ian Munro,