Quantcast
Viewing all articles
Browse latest Browse all 2

Simple and cache-oblivious tries on fixed-length strings

Is there a simple and cache-oblivious data structure that solves the dynamic predecessor problem for strings of length exactly $k$ over an alphabet $A$ in worst-case $O((k\log A)/B + \log n)$ memory transfers and $O(k\log A)$ letter comparisons, where $B$ is the block size?

By predecessor problem I mean the problem of maintaining a set under insertion, deletion, and predecessor, where predecessor(k) finds the largest key in the set that is $\leq k$.

Ternary search trees achieve the letter comparison bound and are very simple, but can require $\Theta(k\log A)$ memory transfers.

String B-trees do better than the I/O bound I'm looking for, but they are not simple, and the cache-oblivious ones are even more complex and do not achieve the I/O bound in the worst-case. (String B-trees might achieve the comparison bound I'm looking for; I'm not sure.)

My intuition is that by fixing the size of the keys and relaxing the I/O bound, a simpler structure might be possible.


Viewing all articles
Browse latest Browse all 2

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>