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>
// Let's search 5 in a increasingly sorted array. Array<Integer> inc = ArrayFromVarargs.create(1, 3, 5, 7, 9); int res1 = BinarySearchFirstInArray.search(inc, new DefaultComparator<Integer>(), 5, -1); // must be 2 int res2 = BinarySearchFirstInArray.search(inc, new DefaultComparator<Integer>(), 6, -1); // must be -1, given by argument. // Following is an example for decreasing array. // In this example, you can use a reversed comparator. Array<Integer> dec = ArrayFromVarargs.create(9, 7, 5, 3, 1); int res3 = BinarySearchFirstInArray.search(dec, ReversedComparator.wrap(new DefaultComparator<Integer>()), 3, -1); // You don't have to prepare an array. Any function is enough. // Create a function 'y=8x', and let's search 'x' for 'y'=800. Function<Integer, Integer> f = new Function<Integer, Integer>() { @Override public Integer get(Integer x) { return x * 8; } }; // x must be 100. int x = BinarySearchFirst.search(IntegerNumberSystem.getInstance(), f, new DefaultComparator<Integer>(), 0, 999999, 800, -1);
Copyright 2014 psjava team. View on GitHub