English

Optimal Search Trees with 2-Way Comparisons

Data Structures and Algorithms 2021-03-10 v5

Abstract

In 1971, Knuth gave an O(n2)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(n4)O(n^4)-time algorithm and (ii) an O(nlogn)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.

Keywords

Cite

@article{arxiv.1505.00357,
  title  = {Optimal Search Trees with 2-Way Comparisons},
  author = {Marek Chrobak and Mordecai Golin and J. Ian Munro and Neal E. Young},
  journal= {arXiv preprint arXiv:1505.00357},
  year   = {2021}
}

Comments

ERRATUM: The proof of Theorem 3 of the ISAAC'15 paper (v4 here) is incorrect. Version v5 here contains: a full erratum, proofs of the other results, and pointers to journal versions expanding those results

R2 v1 2026-06-22T09:27:03.851Z