Сортировка и бинарный поиск - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

заполнить массив случайными числами и ввести число и отсортировать его. ввести число x используя двоичный поиск. определите есть ли в массиве число равное X ,если такого числа нет вывести число ближайшее к x пример массив: 1 4 7 3 9 2 4 5 2 после отсортировки: 1 2 2 3 4 4 5 12 19 введите число X: 12 число 12 найдено пример массив: 1 4 7 3 9 2 4 5 2 после отсортировки: 1 2 2 3 4 4 5 12 19 введите число X: 11 число 11 не найдено. Ближайшее число 12

Решение задачи: «Сортировка и бинарный поиск»

textual
Листинг программы
const n=10;
var a:array [1..n] of integer;
    j,i,x,c,m,l,r:integer;
begin
writeln('Массив: ');
for i:=1 to n do
 begin
  a[i]:=1+random(30);
  write(a[i]:3);
 end;
writeln;
for i:= 1 to n-1 do
for j:= 1 to n-1 do
if a[j]>a[j+1] then
 begin
  m:=a[j];
  a[j]:=a[j+1];
  a[j+1]:=m;
 end;
writeln('Отсортированный массив: ');
for i:=1 to n do
write(a[i]:3);
writeln;
writeln('Введите число Х:');
readln(x);
l:=1;r:=n;
for i:=1 to n do
 begin
  c:=(l+r) div 2;
  if a[c]>x then r:=c
  else if a[c]<x then l:=c
  else l:=r;
 end;
if l<>r then
 begin
  write('Число ',x,' не найдено, ближайшее число ');
  if abs(a[r]-x)<abs(a[l]-x) then write(a[r])
  else write(a[l]);
 end
else write('Число ',x,' найдено');
end.

Объяснение кода листинга программы

  1. Создается константа n, которая определяет количество элементов в массиве.
  2. Создается переменная a, которая представляет собой массив из n элементов типа integer.
  3. Создаются переменные j, i, x, c, m и l, которые будут использоваться для сортировки и поиска элемента в массиве.
  4. Выводится сообщение с описанием массива.
  5. Для каждого i от 1 до n выполняется следующая последовательность действий:
    • a[i] присваивается значение, равное сумме случайного числа от 1 до 30.
    • Значение a[i] выводится на экран.
  6. Выполняется сортировка массива методом пузырька.
  7. Выводится отсортированный массив.
  8. Запрашивается число Х.
  9. Вычисляются границы диапазона поиска от 1 до n.
  10. Для каждого i от 1 до n выполняется следующая последовательность действий:
    • Вычисляется средний индекс c.
    • Если a[c] больше Х, то r устанавливается равным c.
    • Если a[c] меньше Х, то l устанавливается равным c.
    • Если a[c] равно Х, то l устанавливается равным r.
  11. Проверяется, были ли найдены все значения Х в массиве.
  12. Если l и r не равны, то выводится сообщение о том, что число Х не найдено.
  13. Если l и r равны, то выводится сообщение о том, что число Х найдено.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

10   голосов , оценка 4 из 5