Selection on with layer-ordered heaps
arXiv:1910.11993
Abstract
Selection on is an important problem with many applications in areas such as max-convolution, max-product Bayesian inference, calculating most probable isotopes, and computing non-parametric test statistics, among others. Faster-than-naïve approaches exist for : Frederickson (1993) published the optimal algorithm with runtime and Kaplan \emph{et al.} (2018) has since published a much simpler algorithm which makes use of Chazelle's soft heaps (2003). No fast methods exist for . Johnson \& Mizoguchi (1978) introduced a method to compute the single value when , but that method runs in time and is inefficient when and . In this paper, we introduce the first efficient methods, both in theory and practice, for problems with . We introduce the ``layer-ordered heap,'' a simple special class of heap with which we produce a new, fast selection algorithm on the Cartesian product. Using this new algorithm to perform -selection on the Cartesian product of arrays of length has runtime . We also provide implementations of the algorithms proposed and evaluate their performance in practice.