int interpolatedSearch(int[] array, int value, int lower, int upper): #header
  If array is empty: #ifNull
    return -1; #invalid
  If boundaries are invalid: #invalidIndex
    return -1; #invalidIndexReturn
    
  Interpolate a good position to look for the element #installMidMarker
  If the element at the position matches value: #checkFound
    return current position. #found
  If value < current element: #ifLess
    return interpolatedSearch(array, value, l, mid - 1). #continueLeft
  Otherwise:
    return interpolatedSearch(array, value, mid + 1, r). #continueRight