counting inversions in lists
In a recent paper, Ajtai et al. [1] give a streaming algorithm to count the number of inversions in a stream L ?[ m ] n using two passes and O (? ?1 -? n log n (log m + log n )) space. Here, we present a simple randomized streaming algorithm for the same problem that uses one pass and O (? ?3 log 2 n log m ) space. Our algorithm is based on estimating quantiles of the items already seen in the stream, and using that to estimate the number of inversions involving each element.
paper stream algorithms streams algorithm log space randomization estimates