Content area
The design of algorithms often involves a trade-off between theoretical guarantees and real-world performance, especially in terms of time, memory, and simplicity. Provable and practical algorithms seek to bridge this gap, offering both rigorous analysis and empirical validation of their efficiency. In this dissertation, we provide novel, practical, and provable algorithms for organizing and searching data, and for modeling and routing in networks.
First, we focus on data organization and search. We introduce zip-zip trees, a simple randomized variant of zip trees that achieves optimal expected node depth and strong history independence using only O(log log n) bits of metadata per node, an exponential improvement over prior work. We then extend this “zipping” technique to strings, creating zip-tries, a dynamic and memory-efficient trie structure that performs competitively with state-of-the-art data structures for long strings.
Second, we study greedy routing in small-world networks. We introduce new graph models, including the windowed Neighborhood Preferential Attachment model, that achieve O(log n) or O(log1+ε n) greedy routing and generalize these results beyond simple lattices by defining fixed-growth graphs of a given dimensionality α. We prove tight bounds for greedy routing and diameters in these graphs and show empirically that this model better represents real-world road networks, improving routing performance over previous work.