Разработка алгоритмов и программ с использованием методов внутренней сортировки - Pascal ABC
Формулировка задачи:
Составьте программу с использованием указанного метода сортировки.
Необходимо сформировать одномерный массив, элементы которого определяются выражением an=2n. Элементы полученного массива отсортировать по убыванию методом вставки.
Решение задачи: «Разработка алгоритмов и программ с использованием методов внутренней сортировки»
textual
Листинг программы
var a:array[0..100] of integer;
n,i,j,b:integer;
begin
write('Введите размер массива т 2 до 100 n=');
readln(n);
writeln('Исходный массив');
for i:=1 to n do
begin
a[i]:=2*i;
write(a[i]:4);
end;
writeln;
a[0]:=2*n+1;
for j:=2 to n do
begin
i:=j;
while a[i]>a[i-1] do
begin
b:=a[i];
a[i]:=a[i-1];
a[i-1]:=b;
i:=i-1;
end;
end;
writeln('Сортировка по убыванию методом вставки');
for i:=1 to n do
write(a[i]:4)
end.
Объяснение кода листинга программы
- Создаётся переменная
aтипаarray[0..100] of integer;, которая будет использоваться для хранения отсортированного массива. - Задаётся переменная
nтипаinteger, которая будет использоваться для хранения размера массива. - Задаются переменные
i,jиbтипаinteger, которые будут использоваться для выполнения различных операций. - Выводится сообщение с просьбой ввести размер массива от 2 до 100.
- В цикле
for i:=1 to n doзаполняется исходный массив значениями, удваивающими размер индекса массива. - Задаётся значение
a[0]как удвоенный размерn+1. - В цикле
for j:=2 to n doвыполняется сортировка массива методом вставки. - В цикле
while a[i]>a[i-1] doпроисходит сравнение текущей и предыдущей ячеек массива и, если текущая больше предыдущей, они меняются местами. - После завершения цикла
whileвыполняется шагi:=i-1, который уменьшает значение индекса на единицу. - Выводится отсортированный массив.