Table of Contents
Fetching ...

Fast and Simple Sorting Using Partial Information

Bernhard Haeupler, Richard Hladík, John Iacono, Vaclav Rozhon, Robert Tarjan, Jakub Tětek

TL;DR

The modified algorithm solves the top-$k sorting problem in minimum time and comparisons, to within constant factors, thus resolving a problem that has been studied intensely since 1976.

Abstract

We consider the problem of sorting $n$ items, given the outcomes of $m$ pre-existing comparisons. We present a simple and natural deterministic algorithm that runs in $O(m+\log T)$ time and does $O(\log T)$ comparisons, where $T$ 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(\lg T)$ on the number of comparisons has a time bound of $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-$k$ sorting problem: Given $k$ and the outcomes of some pre-existing comparisons, output the smallest $k$ items in sorted order. The modified algorithm solves the top-$k$ sorting problem in minimum time and comparisons, to within constant factors.

Fast and Simple Sorting Using Partial Information

TL;DR

The modified algorithm solves the top-$k sorting problem in minimum time and comparisons, to within constant factors, thus resolving a problem that has been studied intensely since 1976.

Abstract

We consider the problem of sorting items, given the outcomes of pre-existing comparisons. We present a simple and natural deterministic algorithm that runs in time and does comparisons, where 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 on the number of comparisons has a time bound of 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- sorting problem: Given and the outcomes of some pre-existing comparisons, output the smallest items in sorted order. The modified algorithm solves the top- sorting problem in minimum time and comparisons, to within constant factors.
Paper Structure (24 sections, 16 theorems, 6 equations, 1 algorithm)

This paper contains 24 sections, 16 theorems, 6 equations, 1 algorithm.

Key Result

Theorem 1.1

There is a simple and natural deterministic algorithm that, given the outcomes of $m$ pre-existing comparisons between pairs of $n$ totally ordered elements, outputs all the elements in sorted order in $\mathrm{O}(m+OPT)$ time using only $\mathrm{O}(OPT)$ additional comparisons.

Theorems & Definitions (27)

  • Theorem 1.1
  • Theorem 1.2
  • Theorem 4.1
  • Lemma 4.2
  • proof
  • Lemma 4.3
  • Lemma 4.4
  • proof
  • Lemma 4.5
  • proof
  • ...and 17 more