Привет, ниже приведен псевдокод для реализации бинарного поиска:
Input: (A[0...n-1], K)
begin
l ← 0; r ← n-1
while l ≤ r do
m ← floor((l+r)/2)
if K > A[m] then l ← m+1
else if K < A[m] then r ← m-1 else return m
end if
end while
return -1 // key not found
end
Мне просто интересно, как вычислить количество сравнений, которые эта реализация сделала бы в худшем случае для отсортированного массива размера n?
Будет ли количество сравнений = lg n + 1? или что-то другое?