English

Fast and Simple Sorting Using Partial Information

Data Structures and Algorithms 2026-05-06 v4

Abstract

We consider the problem of sorting nn items, given the outcomes of mm pre-existing comparisons. We present a simple and natural deterministic algorithm that runs in O(m+logT)O(m + \log T) time and does O(logT)O(\log T) comparisons, where TT is the number of total orders consistent with the pre-existing comparisons. Our running time and comparison bounds are best possible up to constant factors, thus resolving a problem that has been studied intensely since 1976 (Fredman, Theoretical Computer Science). The best previous algorithm with a bound of O(logT)O(\log T) on the number of comparisons has a time bound of O(n2.5)O(n^{2.5}) and is more complicated. Our algorithm combines three classic algorithms: topological sort, heapsort with the right kind of heap, and efficient search in a sorted list. It outputs the items in sorted order one by one. It can be modified to stop early, thereby solving the important and more general top-kk sorting problem: Given kk and the outcomes of some pre-existing comparisons, output the smallest kk items in sorted order. The modified algorithm solves the top-kk sorting problem in minimum time and comparisons, to within constant factors.

Keywords

Cite

@article{arxiv.2404.04552,
  title  = {Fast and Simple Sorting Using Partial Information},
  author = {Bernhard Haeupler and Richard Hladík and John Iacono and Vaclav Rozhon and Robert Tarjan and Jakub Tětek},
  journal= {arXiv preprint arXiv:2404.04552},
  year   = {2026}
}
R2 v1 2026-06-28T15:45:49.841Z