Используя двоичный поиск, определить, есть ли в массиве число, равное Х - Pascal ABC
Формулировка задачи:
Заполнить массив случайными числами и отсортировать его. Ввести число Х. Используя двоичный поиск, определить, есть ли в массиве число, равное Х.
Подсчитать количество сравнений.
Пример:
Массив:
147392452
После сортировки:
122344579
Введите число Х:
2
Число 2 найдено.
Количество сравнений: 2
Решение задачи: «Используя двоичный поиск, определить, есть ли в массиве число, равное Х»
textual
Листинг программы
const
t=10; // количество чисел в массиве
var
a: array[1..t] of integer;
i,min,k,tmp,klv,z : integer;
b: boolean;
begin
for i:=1 to t do
a[i]:=random(10)+1; //Рандом чисел от 1 до 10
for i:=1 to t-1 do
for k:=i+1 to t do
if a[i]>a[k] then
begin
tmp:=a[k];
a[k]:=a[i];
a[i]:=tmp;
end;
for i:=1 to t do
write(' ',a[i]:2);
writeln;
klv:=0;
readln(z);
for i:=1 to t do
if a[i]=z then
begin
b:=true;
inc(klv);
end;
if b then
begin
writeln(' Число ',z,' найдено.');
writeln(' Количество сравнений: ',klv);
end;
if b=false then writeln(' Число ',z,' не найдено.');
end.