Binary Indexed Tree(aka Fenwick Tree) implementation
Install with yarn
$ yarn add binary-indexed-tree
Or 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
Parameters
size
number
Returns number size of BIT
Parameters
Returns boolean successfully added or not O(log(N))
Parameters
Returns boolean successfully replaced or not O(log(N))
Parameters
idx
number should be less than size of BIT
Returns number original value of array O(log(N))
Parameters
idx
number should be less than size of BIT
Returns number sum of range [0..idx] O(log(N))
Parameters
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.
Parameters
check
Function function
Returns number value of first target, or undefined O(N * log(N))
linear search.
Parameters
check
Function function
Returns number index of first target, or -1 O(N * log(N))
linear search.
Parameters
Returns number index of first target, or -1 O(N * log(N))
linear search.
Parameters
Returns number index of last target, or -1 O(N * log(N))
find lower bound. SEQUENCE SHOULD BE INCREASING IN ORDER (GIVEN BY COMPERATOR). IF ANY ITEM HAS MINUS VALUE, THIS METHOD WILL NOT WORK.
Parameters
Returns number index of lower-bound O(log(N))
find upper bound. SEQUENCE SHOULD BE INCREASING IN ORDER (GIVEN BY COMPERATOR). IF ANY ITEM HAS MINUS VALUE, THIS METHOD WILL NOT WORK.
Parameters
Returns number index of upper-bound O(log(N))
Returns Array<number> array of cusum O(N)
Parameters
Returns BinaryIndexedTree instance O(N)
Read the CHANGELOG.
Install devDependencies and Run
npm test
or
yarn test
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.