Используя двоичный поиск, определить, есть ли в массиве число, равное Х - 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.

Оцени полезность:

10   голосов , оценка 4.3 из 5
Похожие ответы