Class: FenwickTree

FenwickTree(N)

Fenwick Tree, またはBinary Indexed Tree http://hos.ac/slides/20140319_bit.pdf とりあえず基本的な機能のみ実装する。 N個の数値v1, v2, ... , vnに対して、 vaに値wを加えるadd(a, w) v1, v2, ..., vaまでの和を求める この2つの計算をO(log N)で行う。 このクラスでデータの添え字は1-indexedで扱われることに注意する。

Constructor

new FenwickTree(N)

Parameters:
Name Type Description
N number FenwickTreeで管理する数値データの個数。正の整数でなければならない。
Source:

Methods

(static) fromArray(valueArray) → {FenwickTree}

数値の配列からFenwickTreeを初期化して返却する。
Parameters:
Name Type Description
valueArray Array.<number> 数値の配列。この配列は0-indexedであるものとする。
Source:
Returns:
数値配列によって初期化されたFenwickTree
Type
FenwickTree

add(index, value) → {void}

指定した位置のデータに指定した値を加算する。
Parameters:
Name Type Description
index number 値を加算する対象のインデックス
value number 整数または浮動小数点数
Source:
Returns:
Type
void

sum(min, max) → {number}

閉区間[min,max]におけるデータの総和を計算する。 min > maxとしたときの動作は未定義。
Parameters:
Name Type Description
min number 1以上N以下の整数
max number 1以上N以下の整数
Source:
Returns:
v_min + ... + v_max
Type
number

sumUpto(index) → {number}

v1からv_indexまでの総和を計算する。
Parameters:
Name Type Description
index number 1以上N以下の整数でなければならない。
Source:
Returns:
v1 + v2 + ... + v_index
Type
number