Библиотечный метод - Pascal
Формулировка задачи:
Продемонстрируйте работу метода сортировки вставками по возрастанию. Для этого выведите состояние данного массива после каждой вставки на отдельных строках. Если массив упорядочен изначально, то следует не выводить ничего.
Входные данные
На первой строке дано число (1 ≤ N ≤ 100) – количество элементов в массиве. На второй строке задан сам массив: последовательность натуральных чисел, не превышающих 109.
Выходные данные
В выходной файл выведите строки (по количеству вставок) по N чисел каждая.
Примеры
входные данные
2
2 1
выходные данные
1 2
входные данные
4
2 1 5 3
выходные данные
1 2 5 3
1 2 3 5
Решение задачи: «Библиотечный метод»
textual
Листинг программы
const max=100; type mas=array[1..max] of longint; procedure print(a:mas;n:byte); var i:byte; begin for i:=1 to n do write(a[i],' '); writeln; end; var a:mas; n,i,j,k:byte; c:longint; begin readln(n); for i:=1 to n do read(a[i]); print(a,n); for i:=2 to n do for j:=1 to i-1 do if a[j]>a[i] then begin c:=a[i]; for k:=i downto j+1 do a[k]:=a[k-1]; a[j]:=c; print(a,n); end; end.
Объяснение кода листинга программы
- Создается константа
maxсо значением 100. - Определяется тип
masкак массив из 1 доmaxэлементов типаlongint. - Объявляется процедура
printс параметрамиaтипаmasиnтипаbyte. - Внутри процедуры
printсоздается переменнаяiтипаbyte. - Вводится переменная
aтипаmasдля хранения массива. - Объявляются переменные
n,i,j,kтипаbyteиcтипаlongint. - Считывается значение переменной
nс клавиатуры. - Считываются элементы массива
aдоn. - Вызывается процедура
printдля отображения массиваaи его размера. - Выполняется внешний цикл от 2 до
n. - Внутри внешнего цикла выполняется внутренний цикл от 1 до
i-1. - Если элемент массива
aс индексомjбольше чем элемент массиваaс индексомi, то:- Присваивается переменной
cзначение элементаa[i]. - Запускается цикл от
iдоj+1и каждому элементу присваивается значение предыдущего элемента. - Элементу массива
aс индексомjприсваивается значениеc. - Вызывается процедура
printдля отображения отсортированного массиваa.
- Присваивается переменной
- Завершается выполнение программы.