Я видел много примеров бинарного поиска, много методов его оптимизации, поэтому вчера мой лектор написал код (в этом коде предположим, что первый индекс начинается с 1, а последний - N, так что N - длина массива, рассмотрим это в псевдокоде. код выглядит так:
L:=1;
R:=N;
while( L<R)
{
m:=div(R+L,2);
if A[m]> x
{
L:=m+1;
}
else
{
R:=m;
}
}
Здесь мы предполагаем, что массив - это A, поэтому лектор сказал, что мы не тратим время на сравнение, если элемент находится в средней части массива каждый раз, также преимущество состоит в том, что если элемент не в массиве, индекс говорит о том, где он будет расположен, так что это оптимально, он прав? Я имею в виду, что я видел много видов бинарного поиска, например, от Джона Бентли (жемчужины программирования) и так далее, и действительно ли этот код оптимален? в моем случае он написан паскалем, но язык не зависит.