I have a array that contains versions of an article. I want to implement a binary search function that return the first version that contains a given string. for example the will return 4 for the next array :
array[0] = my name is foo and I'm a programmer.
array[1] = my name is bar and I'm a programmer.
array[2] = my name is foo and I'm a programmer.
array[3] = my name is and I'm a programmer.
array[4] = my name is foo and I'm a programmer.
array[5] = my name is foo.
Here what I have done so far :
private static Revision binarySearch(Revision[] array, int left, int right,
String value) throws IOException {
if (left > right)
//I don't know what to put here;
int middle = (left + right) / 2;
Revision rv = array[middle];
String text = rv.getText();
if (!containsTemplate(text, value))
return binarySearch(array, left, middle - 1, template);
else
return binarySearch(array, middle + 1, right, template);
}