kgoto
January 14, 2022
53

# In-Place BW Transform

Chapter96 in the book 125 problems in Text Algorithms.

January 14, 2022

## Transcript

1. ### In-Place BW Transform Chapter 96 in 125 problems book. Speaker:

@kgoto Book Reading Seminar #15, January 14, 2022 1 1
2. ### We call BW-string of We call BW-character of is 0-indexed

BW Transform The Burrows-Wheeler transform of length- string is the word composed of the last letters of the sorted conjugates of . BW(x) n x x BW(x) x x[(n + i − 1) mod n] x[i..] x Today's topic Compute BW-string of in time in-place. x O(n ) 2 2 2
3. ### Strategy Let , and transform to For to (loop-invariant) at

the beginning, Transform to in time in-place z = x z = x z = BW(x) i = n − 1 0 z = z ​ = i+1 x[0..i]BW(x[i + 1..n − 1]) z = z ​ i+1 z ​ i O(n) 3 3
4. ### Observation is a permutation of For , BW-character of on

is one of on BW-character of is BW(x[i..]) x[i..] j > i x[j..] x[i..] x[j..] x x[i..] # 4 4
5. ### Transform to Let be the position of in swap and

compute the position ( ) that will be inserted cyclic shift to the left by one z = z ​ i+1 z = z ​ i p # z z[i] z[p] i + r # z[i..i + r] The remain task is to find the rank of . x ​ i 5 5
6. ### Finding rank of from one of is the common procedure

of the backward search on BW-string. be the number of characters smaller than in It is the starting position of suffixes starting with in the suffix array be the numberof characters in It is the position of of suffixes starting with in the suffix array Here, is the rank of of suffixes for . x[i..] x[i + 1..] q x[i] x[i + 1..n − 1] x[i] t x[i] x[i + 1..p − 1] x[i..] x[i] r = q + t x ​ i x ​ j j ≥ i 6 6
7. ### Compute form ( =bananna) ( =baannaa) ( =baanna#) z ​

i z ​ i+1 z[p] ← x[i] z z[i..i + r − 1] ← z[i + 1..i + r] z z[i + r] ← # z 7 7
8. ### Time and Space Complexities For each step, the alrotihm runs

linear time and in-place. In total, the algorithm runs in time in-place O(n ) 2 8 8
9. ### Reference The problem is discussed in the following paper. M.

Crochemore, R. Grossi, J. Kärkkäinen and G. M. Landau. Computing the Burrows-Wheeler transform in place and in small space. J. Discrete Algorithms, 32:44–52, 2015. 9 9