Add Fenwick Tree (#2570)

This commit is contained in:
KanakalathaVemuru
2021-10-20 13:49:30 +05:30
committed by GitHub
parent 68d6a9419b
commit 4a2b190160

View File

@ -0,0 +1,34 @@
package DataStructures.Trees;
public class FenwickTree {
private int n;
private int fen_t[];
/* Constructor which takes the size of the array as a parameter */
public FenwickTree(int n) {
this.n = n;
this.fen_t = new int[n + 1];
}
/* A function which will add the element val at index i*/
public void update(int i, int val) {
// As index starts from 0, increment the index by 1
i += 1;
while (i <= n) {
fen_t[i] += val;
i += i & (-i);
}
}
/* A function which will return the cumulative sum from index 1 to index i*/
public int query(int i) {
// As index starts from 0, increment the index by 1
i += 1;
int cumSum = 0;
while (i > 0) {
cumSum += fen_t[i];
i -= i & (-i);
}
return cumSum;
}
}