60. 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
67. 参考⽂文献
l “⾼高速⽂文字列列解析の世界”, 岡野原 ⼤大輔, 岩波書店
l “Wavele Trees for All”, G. Navarro, CPM2012
l “The Wavelet Matrix”, F Claude, G. Navarro, SPIRE 2012
.
67