int search(String[] array, String value, int lower, int upper): #header
  if the input array or value are null: #ifNull
    return -1;
  if the current position is outside the array: #invalidIndex
    return -1; #invalidIndexReturn
  set mid = (lower + upper) / 2. installMidMarker
  if the element at position pos is equal to value: #checkFound
    return mid; #found
  if the element is less than the element at position mid: #ifLess
    return search(array, value, lower, mid - 1); #continueLeft
  return search(array, value, mod + 1, upper); #continueRight