Двоичный поиск в массиве


Двоичный поиск в массиве

 Вход: 3

 Результат:A[3]=3


program binSearch;

const N = 5;

var A: array[1..N] of integer;

    i, X, L, R, c: integer;

begin

  writeln ( 'Массив:' );

  for i:=1 to N do 

begin

    A[i]:= i;

    write ( A[i], ' ' );

  end;

  writeln;


  write ( 'Что ищем? ' );  

  read ( X );

  L:= 1; 

  R:= N+1;

  while L < R-1 do 

               begin

            c:= (L+R) div 2;

            if X < A[c] then

                 R:= c 

            else L:= c

                  end;

  if A[L] = X then

  write ( 'A[', L, ']=', X )

  else writeln( 'Не нашли!' )

end.