Skip to content
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions Trees/FenwickTreeImplementation.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/*
* Author: Mohit Kumar
* Fedwick Tree Implementation in JavaScript
* Fedwick Tree Implementation for finding prefix sum.
*/

function constructFenwickTree(array, n) {
for (let i = 1; i <= n; i++) {
FeneickTree[i] = 0;
}
for (let i = 0; i < n; i++) {
updateFenwickTree(n, i, array[i]);
}
}

function updateFenwickTree(n, index, value) {
index = index + 1;
while (index <= n) {
FeneickTree[index] += value;
index += index & (-index);
}
}

function getPrefixSum(index) {
let currSum = 0;
index = index + 1;
while (index > 0) {
currSum += FeneickTree[index];
index -= index & (-index);
}

return currSum;
}

let MAX_VALUE = 1000;
let FeneickTree = new Array(MAX_VALUE);
let array = [3, 2, 0, 6, 5, -1, 2];

let length = array.length;
constructFenwickTree(array, length);

getPrefixSum(6);
array[2] += 6;
updateFenwickTree(length, 2, 6);
getPrefixSum(6);

//Output1 : 17
//Output2 : 23