Сортування включенням (insertion sort), або сортування вставками - це алгоритм сортування, в якому всі елементи масиву почергово переглядаються, при цьому кожен елемент переміщається у відповідне місце серед раніше впорядкованих значень.
Алгоритм роботи сортування включенням наступний:
- на початку роботи впорядкована частина порожня;
- додаємо в неї перший елемент масиву з невпорядкованих даних;
- переходимо до наступного елементу в невідсортованих даних, і знаходимо йому правильну позицію у відсортованій частині масиву, цим ми розширюємо область впорядкованих даних;
- повторюємо попередній крок для всіх елементів, що залишилися.
Код програми “Сортування включенням”
{$CODEPAGE UTF8}
program InsertionSort;
const
arrayLength = 10;
var
inputArray : array [1..arrayLength] of integer;
i, j, key, tempValue: integer;
begin
randomize;
writeln ('Вхідний масив: ');
{заповнення масиву випадковими числами}
for i := 1 to arrayLength do
begin
inputArray[i] := random(100);
write (inputArray[i]:4);
end;
writeln;
{сортування включенням}
for i := 2 to arrayLength do
begin
key := inputArray[i];
j := i;
while (j > 1) and (inputArray[j - 1] > key) do
begin
{обмін елементів}
tempValue := inputArray[j];
inputArray[j] := inputArray[j - 1];
inputArray[j - 1] := tempValue;
j := j - 1;
end;
inputArray[j] := key;
end;
writeln ('Відсортований масив: ');
for i := 1 to arrayLength do
write (inputArray[i]:4);
readln;
end.
Для того, щоб відсортувати дані по спаданню, достатньо змінити знак порівняння у виразі (inputArray[j - 1] > key)
на “<”.