Wavelet trees answer range queries on sequences. Structure: Binary tree where each node splits alphabet.
Left child gets smaller half, right gets larger half. Core Operations:
- Rank: Count occurrences of symbol in prefix
- Select: Find k-th occurrence of symbol
- Range quantile: k-th smallest in range
core idea: Recursively halve alphabet, use bitvectors at each level.
Complexity: per query where is alphabet size. Space: .