Сортировка вставками - Pascal ABC (18447)

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

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

Здравствуйте, помогите пожалуйста, нужно написать программу сортировки одномерного массива по заданным алгоритмам

Решение задачи: «Сортировка вставками»

textual
Листинг программы
uses crt;
const n=20;
type mas=array [1..n] of integer;
function poisk(a:mas;i:integer):integer;
var m:integer;
begin
m:=1;
while a[m]<a[i] do m:=m+1;
poisk:=m
end;
procedure vstavka(var a:mas;i,m:integer);
var buf,k:integer;
begin
buf:=a[i];
for k:=i-1 downto m do
a[k+1]:=a[k];
a[m]:=buf;
end;
 
var a:mas;
    i,m:integer;
begin
randomize;
writeln('Исходный массив');
for i:=1 to n do
 begin
  a[i]:=random(100);
  write(a[i]:4);
 end;
writeln;
for i:=2 to n do
if a[i]<a[i-1] then
 begin
  m:=poisk(a,i);
  vstavka(a,i,m)
 end;
writeln('Результат:');
for i:=1 to n do
write(a[i]:4);
end.

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

  1. Объявлены переменные: n, mas, i, m, buf, k.
  2. Функция poisk ищет позицию элемента в массиве, сравнивая его с остальными элементами.
  3. Процедура vstavka меняет местами элементы массива, начиная с позиции i до m включительно, с помощью цикла for.
  4. Переменная a инициализируется случайными значениями от 1 до 100.
  5. Выводится исходный массив.
  6. Если текущий элемент больше предыдущего, то меняется его позиция с помощью функции poisk и процедуры vstavka.
  7. Выводится отсортированный массив.

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


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

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

11   голосов , оценка 3.909 из 5