Maintaining the cycle structure of dynamic permutations
We present a new data structure for maintaining dynamic permutations, which we call a forest of splay trees (FST). The FST allows one to efficiently maintain the cycle structure of a permutation π when the allowed updates are transpositions. The structure stores one conceptual splay tree for each cycle of π, using the position within the cycle as the key. Updating π to τ·π, for a transposition τ, takes 𝒪(log n) amortized time, where n is the size of π. The FST computes any π(i), π^-1(i), π^k(i) and π^-k(i), in 𝒪(log n) amortized time. Further, it supports cycle-specific queries such as determining whether two elements belong to the same cycle, flip a segment of a cycle, and others, again within 𝒪(log n) amortized time.
READ FULL TEXT