Двоичный(бинарный) поиск
Ищет номер заданного элемента в упорядоченном по возрастанию массиве.
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.
Комментарии:
Нету комментариев для вывода...