В бинарном поиске у нас есть два сравнения: одно больше, а другое меньше.
чем его среднее значение. Как бы вы оптимизировали, чтобы мы проверяли только один раз?
bool binSearch(int array[], int key, int left, int right)
{
mid = left + (right-left)/2;
if (key < array[mid])
return binSearch(array, key, left, mid-1);
else if (key > array[mid])
return binSearch(array, key, mid+1, right);
else if (key == array[mid])
return TRUE; // Found
return FALSE; // Not Found
}