Python Shell Sort
Shellsort, auch bekannt als Sortieralgorithmus mit abnehmenden Inkrementen, ist eine effizientere, verbesserte Version der Einfügesortierung. Allerdings ist Shellsort ein instabiles Sortierverfahren.
Die Grundidee von Shellsort ist: Zuerst wird die gesamte zu sortierende Folge von Datensätzen in mehrere Teilfolgen aufgeteilt und auf jede Teilfolge separat eine direkte Einfügesortierung angewendet. Wenn die Datensätze in der gesamten Folge "im Wesentlichen sortiert" sind, wird anschließend eine direkte Einfügesortierung auf alle Datensätze nacheinander angewendet.
Beispiel
def shellSort(arr):
n = len(arr)
gap = int(n/2)
while gap > 0:
for i in range(gap,n):
temp = arr[i]
j = i
while j >= gap and arr[j-gap] >temp:
arr[j] = arr[j-gap]
j -= gap
arr[j] = temp
gap = int(gap/2)
arr = [ 12, 34, 54, 2, 3]
n = len(arr)
print ("Vor dem Sortieren:")
for i in range(n):
print(arr[i]),
shellSort(arr)
print ("\nNach dem Sortieren:")
for i in range(n):
print(arr[i]),
Die Ausführung des obigen Codes liefert das folgende Ergebnis:
排序前: 12 34 54 2 3 排序后: 2 3 12 34 54Andere Erweiterungen
Python3-Beispiele