Streaming Maximum-Minimum Filter Using No More than Three Comparisons per Element


The running maximum-minimum (max-min) filter computes the maxima and minima over running windows of size w. This filter has numerous applications in signal processing and time series analysis. We present an easy-to-implement online algorithm requiring no more than 3 comparisons per element, in the worst case. Comparatively, no algorithm is known to compute the running maximum (or minimum) filter in 1.5 comparisons per element, in the worst case. Our algorithm has reduced latency and memory usage.

Nordic Journal of Computing 13 (4), pages 328-339, 2006
The algorithm described in this article is used in Apache Hive.