Donald Shell stellt 1959 in [📖She59] einen Sortieralgorithmus vor, der später nach ihm benannt wird: Shellsort.
Die in dem Algorithmus verwendete Sortiermethode ist auch bekannt als
Sortieren mit abnehmenden Inkrementen [📖OW17b, p. 88], das Verfahren ist eine Variation von Insertion Sort:
[Shellsort] uses insertion sort on periodic subarrays of the input
to produce a faster sorting algorithm. [📖CL22, p. 48]
In der vorliegenden Implementierung (siehe Listing 1) werden t=log2(n) Inkremente[^1]
ht[^2] der Form ⌊2in⌋ verwendet, um lg(n)
h-sortierte Folgen zu erzeugen. Im letzten Schritt sortiert der
Algorithmus dann in h1 die Schlüssel mit Abstand=1.
Die Effizienz des Sortierverfahrens ist stark abhängig von h: So zeigt
Knuth, dass O(n23) gilt, wenn für h gilt:
hs=2s+1−1 mit 0≤s<t=⌊lg(n)⌋ (vgl. [📖Knu97c, p. 91][^3]. In unserem Fall können wir von O(n2) ausgehen.