Ответ:

На каждом шаге рассматриваем середину текущего диапазона.

  1. Если l > r, элемента x в массиве нет.
  2. Находим mid = l + ⌊(r−l)/2⌋.
  3. Если arr[mid] = x, возвращаем mid.
  4. Если arr[mid] < x, продолжаем поиск в диапазоне от mid+1 до r; иначе — от l до mid−1.

Диапазон поиска каждый раз уменьшается примерно вдвое, поэтому время работы — O(log n). Конкретный индекс нельзя определить без массива и значения x.

Ответ: алгоритм рекурсивно сужает отсортированный диапазон; для поиска конкретного элемента нужны arr и x.