Составьте программу, которая методом двоичного поиска проверяет наличие искомого элемента в массиве.
Решение:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
program arrays_14;
uses crt; var i, n, key, a, b, c: integer; x: boolean; mas: array[1..100] of integer; begin write(‘Размер массива > ‘); read(n); write(‘Искомый элемент > ‘); read(key); for i:=1 to n do begin mas[i]:=i*n; write(mas[i],‘ ‘); end; a:=1; b:=n; x:=false; while a<=b do begin c:=a+(b—a) div 2; if (key<mas[c]) then b:=c—1 else if (key>mas[c]) then a:=c+1 else begin x:=true; break; end; end; if (x=true) then writeln(‘Элемент найден’) else write(‘Элемент не найден’); end. |