Сортировка массива по алгоритму Shell
Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch
{ The following procedure sorts an Array with the fast Shell-Sort algorithm. Invented by Donald Shell in 1959, the shell sort is the most efficient of the O(n2) class of sorting algorithms } { Die folgende Prozedur Sortiert ein Array mit dem schnellem Shell-Sort Algorithmus. } Procedure Sort_Shell(var a: array of Word); var bis, i, j, k: LongInt; h: Word; begin bis := High(a); k := bis shr 1;// div 2 while k > 0 do begin for i := 0 to bis - k do begin j := i; while (j >= 0) and (a[j] > a[j + k]) do begin h := a[j]; a[j] := a[j + k]; a[j + k] := h; if j > k then Dec(j, k) else j := 0; end; // {end while] end; // { end for} k := k shr 1; // div 2 end; // {end while} end;
Далее: Сортировка методом Пузырька »»