Бинарная вставка - Pascal ABC

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

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

помогите, нужно сделать с генерацией, на Pascal ABC, и нужна блок схема

Решение задачи: «Бинарная вставка»

textual
Листинг программы
var
  a: array[1..100] of integer;
  i,j,n,sred,left,right,tmp: integer;
begin
  write('Введите размер массива n: ');
  readln(n);
  writeln('Исходный массив:');
  for i:=1 to n do
  begin
    a[i]:=random(99)+1;
    write(a[i]:4);
  end;
  writeln;
  
  for i:=2 to n do
  if a[i-1]>a[i] then
  begin
    tmp:=a[i];
    left:=1;
    right:=i-1;
    repeat
      sred:=(left+right) div 2;
      if a[sred]<tmp then
        left:=sred+1
      else right:=sred-1;
    until left>right;
    for j:=i-1 downto left do
      a[j+1]:=a[j];
    a[left]:=tmp;
  end;
  writeln('Упорядоченный массив:');
  for i:=1 to n do write(a[i]:4);
  readln;
end.

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

  1. Введен размер массива n.
  2. Введен исходный массив a[1..100] из 100 элементов, заполненный случайными числами от 1 до 99.
  3. Выведена информация о массиве a.
  4. Производится сортировка массива a по методу бинарной вставки.
  5. На каждой итерации находится элемент, который нужно вставить в упорядоченную часть массива, и его положение в массиве.
  6. Элемент, который нужно вставить, помещается в конец упорядоченной части массива.
  7. Упорядоченный массив выводится на экран.

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


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

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

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