Язык программирования Pascal. Регулярные типы данных. Васильев В.В - 11 стр.

UptoLike

11
Алгоритм двоичного поиска : у сравнивается со средним элементом
массива (или элементом около середины ); если числа совпали, то поиск завер-
шается, если у меньше среднего элемента, то у надо искать в левой половине
массива, иначе - в правой . Далее этот же алгоритм применяется к выбранной
половине массива и т. д.
Переменная i используется как параметр циклов. n количество элементов
в массиве . а массив из 100 целых чисел . l, r границы отрезка, на котором
ищется элемент.
Program Bin_search;
Uses crt;
Type mas1=array[1..100] of integer;
Var i,n,k,l,r,y:integer; x:mas1;
Begin
Textbackground(7); Textcolor(blue); Clrscr;
repeat
write('Введите количество элементов одномерного массива(<=100):');
readln(n);
until (n>0) and (n<101);
writeln('Введите элементы массива, упордоченного по возрастанию');
write('Введите 1-й элемент: ');readln(x[1]);
for i:=2 to n do
begin
write('Введите ',i,'-й элемент: ');
repeat
readln(x[i]);
until (x[i]>=x[i-1]);
end;
write('Введите искомый элемент y: '); readln(y);
{-------------------------------------------------------}
l:=1; r:=n;
while l<=r do
begin
i:=(l+r) div 2;
if x[i]=y
then break
else
if x[i]<y
then l:=i+1
else r:=i-1;
end;
{------------------------------------------------------}
if x[i]=y
then
begin k:=i;