import java.util.Arrays; public class BakerSearch extends SumSearch { @Override protected int search(long[] l, long[] m) { int found = 0; Arrays.sort(m); for (int i = 0; i < l.length; i++) { long a = l[i]; for (int j = i; j < l.length; j++) { long b = l[j]; long sum = a + b; int index = Arrays.binarySearch(m, sum); if (index >= 0) ++found; } } return found; } @Override public String toString() { return getClass().getName(); } }