Binary Indexed Tree(aka Fenwick Tree) implementation
Install with npm:
$ npm install binary-indexed-tree
Binary Indexed Tree (aka Fenwick Tree) is a data structure providing efficient methods for prefix-sum.
BinaryIndexedTree implementation
size
number
Type: number
Returns number size of BIT
Returns boolean successfully added or not O(log(N))
Returns boolean successfully updated or not O(log(N))
idx
number should be less than size of BIT
Returns number original value of array O(log(N))
idx
number should be less than size of BIT
Returns number sum of range [0..idx] O(log(N))
idx
number should be less than size of BIT
Returns number sum of range [0..idx) O(log(N))
Returns number sum of all O(log(N))
linear search.
check
Function function
Returns number value of first target, or undefined O(N * log(N))
linear search.
check
Function function
Returns number index of first target, or -1 O(N * log(N))
linear search.
Returns number index of first target, or -1 O(N * log(N))
linear search.
Returns number index of last target, or -1 O(N * log(N))
find lower bound. SEQUENCE MUST BE STRICTLY SORTED.
Returns number index of lower-bound O(log(N))
find upper bound. SEQUENCE MUST BE STRICTLY SORTED.
Returns number index of upper-bound O(log(N))
Returns Array<number> array of cusum O(N)
Returns BinaryIndexedTree instance O(N)
Read the CHANGELOG.
Install devDependencies and Run npm test
:
$ npm -d it
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
Copyright © 2016-present berlysia. Licensed under the MIT license.