Консультация № 197129
18.11.2019, 16:34
0.00 руб.
0 1 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос: Бинарный поиск Элемент с заданным ключом (значением)





Приложение:
pascal

Обсуждение

давно
Профессор
401888
1232
19.11.2019, 06:01
общий
это ответ
Здравствуйте, dkhrebtovich!
[code lang=pascal]var a,z:array [1..100] of integer;
n,k,i,first,last,mid,x:integer;
begin
randomize;
repeat
write('Введите размер массива от 3 до 100 n=');
readln(n);
until n in [3..100];
//создаем упорядоченный массив(по возрастанию, можно наоборот)
for i:=1 to n do
begin
if i=1 then a[i]:=1
else a[i]:=a[i-1]+1+random(3);
write(a[i]:4);
end;
writeln;
write('Введите число для поиска в массиве x=');
readln(x);
first:=1;
last:=n+1;
while first <> last do
begin
mid:=first+(last-first) div 2;
if x<=a[mid] then last:=mid
else first:=mid+1;
end;
if a[last]=x then writeLn('Число ',x,' есть в массиве')
else writeLn('Числа ',x,' нет в массиве');
end.[/code]
Форма ответа