Download jar file or use maven. psjava requires Java 1.6 (or above)
<dependency>
<groupId>org.psjava</groupId>
<artifactId>psjava</artifactId>
<version>0.1.19</version>
</dependency>
// Create an initial tree with an array, and a binary operator. // The binary operator can be adder, multiplier or anything you define. Array<Integer> init = MutableArrayFromVarargs.create(4, 3, 1, 5, 2); SegmentTree<Integer> maxTree = GoodSegmentTreeFactory.getInstance().create(init, new BinaryOperator<Integer>() { @Override public Integer calc(Integer a, Integer b) { return Math.max(a, b); } }); // query by range. int max1 = maxTree.query(1, 4); // maximum is 5 among (3, 1, 5) // update one element. and query again to get updated result. maxTree.update(2, 99); int max2 = maxTree.query(1, 4); // now, maximum is 99 among (3, 99, 5)
Copyright 2014 psjava team. View on GitHub