B I T
Binary Indexed Tree
BIT ?
支援
單點修改,區間查詢
區間修改,單點查詢(須加差分)
區間修改,區間查詢(須加差分)
的資料結構
單點修改,區間查詢前綴合
空間複雜度 : O(n)
修改、查詢時間複雜度 : O(logn)
區間查詢前綴合
low bit :
15 -> 1111 -> low bit = 1
14 -> 1110 -> low bit = 2
12 -> 1100 -> low bit = 4
8 -> 1000 -> low bit = 8
11 -> 1011 -> low bit = 1
10 -> 1010 -> low bit = 2
8 -> 1000 -> low bit = 8
單點修改
9 -> 01001 -> low bit = 1
10 -> 01010 -> low bit = 2
12 -> 01100 -> low bit = 4
16 -> 10000 -> low bit = 16
如何計算 low bit ?
x = 00010100
-x = 11101011 + 00000001
= 11101100
x&(-x) = 00000100
實作時間