ВУЗ:
Составители:
Рубрика:
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;
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »