Pascal. Задача 8-21
Отсортировать массив целых чисел, введенных пользователем, методом простых вставок.
Алгоритм сортировки методом простых вставок заключается в следующем: просматриваются элементы массива начиная со второго элемента. Текущий элемент помещается в буфер, он сравнивается с предыдущими и пока не будет найден элемент меньший текущего, элементы циклически сдвигаются вправо до текущего. На освободившееся место вставляется значение из буфера. Например, текущий элемент с индексом 4:
3-ий элемент перемещаем на место четвертого, второй элемент перемещаем на место третьего. На место второго элемента вставляем значение из буфера.
Таким образом просматриваются все элементы массива по очереди.
Сортировка методом простых вставок считается эффективной для почти упорядоченных массивов.
const
N = 10;
var
i, j, tmp : integer;
a : array[1..N] of integer;
flag : boolean;
begin
for i := 1 to N do begin
Write('Введите элемент массива ', i, ': ');
Readln(a[i]);
end;
for i := 2 to N do begin
j := i;
tmp := a[i];
while (j > 1) and (tmp < a[j - 1]) do begin
a[j] := a[j - 1];
Dec(j);
end;
if j < i then a[j] := tmp;
end;
for i := 1 to N do Write(a[i], ' ');
Writeln();
end.