ウェーブレット⽊木の特徴
l 整数列列の⻑⾧長さがn, 値域が[0,s)とする
l 特徴1:⽊木の⾼高さは log2 s
l 特徴2:サイズはn log2 s bitであり元の整数列列のサイズと同じ
l ウェーブレット⽊木はビットを並び替えていると考えられる
l 特徴3:構築はO(n log2 s)時間、2 n log2 s ビットで可能
l 先程の通り⽂文字を振り分け、各節点のビットを順に決定すれば良良い
L
H
木の高さは log2 s
LL
LH
HL
HH
27
rank2(T, 12)
0123456789012345
T = 0721436725047263
s (節点の開始位置) e (節点の開始位置)
Bd : d番⽬目のbit列列
0100101101011010 nzd : Bd-1の0の数
s = 0, e = pos
0101101110110011 for d = 0 to log2s
b = cのd番⽬目の上位bit
s = rankb(Bd, s)
0100100100110110 e = rankb(Bd, e)
if (b == 1)
0044222661533777 s += nzd, e += nzd
end if
end for
最後の数は説明のために⽤用意 60
return e - s