Then Begin

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;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: