Optimal Search Trees with 2-Way Comparisons

2 May 2015  ·  Marek Chrobak, Mordecai Golin, J. Ian Munro, Neal E. Young ·

In 1971, Knuth gave an $O(n^2)$-time algorithm for the classic problem of finding an optimal binary search tree. Knuth's algorithm works only for search trees based on 3-way comparisons, while most modern computers support only 2-way comparisons (e.g., $<, \le, =, \ge$, and $>$). Until this paper, the problem of finding an optimal search tree using 2-way comparisons remained open -- poly-time algorithms were known only for restricted variants. We solve the general case, giving (i) an $O(n^4)$-time algorithm and (ii) an $O(n \log n)$-time additive-3 approximation algorithm. Also, for finding optimal binary split trees, we (iii) obtain a linear speedup and (iv) prove some previous work incorrect.

PDF Abstract
No code implementations yet. Submit your code now

Categories


Data Structures and Algorithms 68P10, 68P30, 68W25, 94A45, E.4; G.1.6; G.2.2; H.3.1; I.4.2

Datasets


  Add Datasets introduced or used in this paper