Mega Code Archive

 
Categories / Delphi / Algorithm Math
 

Sort an Array with the Shell Sort Algorithm

Title: sort an Array with the Shell Sort Algorithm? { 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;