Begin
Begin
x:=a[i];
<вставить x на подходящее место
в a[0]... a[i-1]>;
end;
Процесс сортировки прямыми включениями показан на примере восьми случайно взятых чисел:
На i-ом проходе i-ый ключ сравнивается с (i-1)-ым ключом, и если a[i-1].Кey > a[i].Кey, то элементы a[i-1] и a[i] обмениваются местами. Затем «новый» ключ a[i-1].Кey сравнивается с предыдущим ключом a[i-2].Кey и т. д. Таким образом, на каждом проходе часть элементов готовой последовательности сдвигается на одну позицию вправо, освобождая место для включаемого элемента. Этот процесс называется «просеиванием» элемента a[i].
Алгоритм сортировки прямыми включениями может иметь следующую реализацию:
Рrocedure DirInsSort;
Var i, j: Integer;
x: TElement;
For i:=1 To HighIndex Do Begin
For j:= i-1 Downto 0 Do
If a[j+1].Кey < a[j].Кey
x:= a[j+1];
a[j+1]:= a[j];
a[j]:= x;