Python Shell Sort

Document 对象参考手册Python3-Beispiele

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
54

Document 对象参考手册Python3-Beispiele

Andere Erweiterungen