Двоичный(бинарный) поиск

Ищет номер заданного элемента в упорядоченном по возрастанию массиве.
var
   n,v,i,r:integer;
   a:array[1..1000] of integer;
   
procedure binsearch(left,right:integer);
begin
    if left=right then
    begin
       r:=right;
       exit;
    end;
      
   r:=(right+left) div 2;
   if a[r]<v then
   begin
      left:=r+1;
      binsearch(left,right)
   end
   else
   begin
      right:=r;
      binsearch(left,right);
   end;
end;
 
begin
   readln(n);
   for i:=1 to n do
      read(a[i]);
   readln(v);
   binsearch(1,n);
   if a[r]=v then
      writeln(r)
   else
      writeln('Absent');
end.
Теги:
Двоичный, бинарный, поиск
Добавлено: 22 Сентября 2013 12:36:20 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...