Sciweavers

SODA
2010
ACM

Counting Inversions, Offline Orthogonal Range Counting, and Related Problems

14 years 8 months ago
Counting Inversions, Offline Orthogonal Range Counting, and Related Problems
We give an O(n lg n)-time algorithm for counting the number of inversions in a permutation on n elements. This improves a long-standing previous bound of O(n lg n/ lg lg n) that followed from Dietz's data structure [WADS'89], and answers a question of Andersson and Petersson [SODA'95]. As Dietz's result is known to be optimal for the related dynamic rank problem, our result demonstrates a significant improvement in the offline setting. Our new technique is quite simple: we perform a "vertical partitioning" of a trie (akin to van Emde Boas trees), and use ideas from external memory. However, the technique finds numerous applications: for example, we obtain ? in d dimensions, an algorithm to answer n offline orthogonal range counting queries in time O(n lgd-2+1/d n); ? an improved construction time for online data structures for orthogonal range counting; ? an improved update time for the partial sums problem; ? faster Word RAM algorithms for finding the m...
Timothy M. Chan, Mihai Patrascu
Added 01 Mar 2010
Updated 02 Mar 2010
Type Conference
Year 2010
Where SODA
Authors Timothy M. Chan, Mihai Patrascu
Comments (0)