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 

實作時間

Made with Slides.com