The fundamental problem of minimum computation has several well studied generalizations such as prefix minima, range minima, and all nearest smaller values computations. Recent papers introduced parallel algorithms for these problems when the n input elements are given from an integer domain [1..s], obtaining O(lg lg lg s) running time and linear work for s⩾n. However, most of these algorithms have the running time of O(lg lg lg n) (rather than O(lg lg lg s)) for all values of s⩽n, except for the case s=O(1) in which case the running time is O(α(n)). In this paper we focus on the range s⩽n and provide linear-work algorithms whose running time is O(lg lg lg s+f(n)) for all s⩾0, where f(n) is either one of the slow growing functions lg* n or α(n). We show how to generalize our algorithms to the case that the domain size s is unknown, with the same complexities. (All previous algorithms work only under the assumption that the domain sire s is known.) Moreover, we make our algorithms output-sensitive with the lg lg lg s term replaced by lg lg lg M, where M is the maximum input value. In fact, for the minimum computation problem the running time is O(lg lg lg m) for all s⩾0, where m is the minimum input value
Published in:
Parallel Processing Symposium, 1995. Proceedings., 9th International
Date of Conference: 25-28 Apr 1995