Problembeschreibung
Ordnen Sie eine Reihe zufällig angeordneter Zahlen in der Reihenfolge von klein nach groß neu an.
Einfügealgorithmus
Nimmt jeweils eine Zahl aus dem Array, vergleicht sie mit der vorhandenen Zahl und fügt sie an der entsprechenden Position ein.
Wiederholen Sie diesen Vorgang jedes Mal, wenn Sie die vorhandenen Nummern in der richtigen Reihenfolge halten können, bis die Nummern herausgenommen werden, das heißt, die Sortierung ist erfolgreich.
Dies ist der Situation beim Kartenziehen beim Kartenspielen sehr ähnlich.
Die erste Bedingung: Halten Sie die Reihenfolge der Karten in Ihrer Hand korrekt.
Die zweite Bedingung: Ziehen Sie alle Karten neu Zeit: Die Karten werden der Reihe nach in die Mitte der Handkarten gesteckt.
Lassen Sie diese beiden Punkte unverändert, dann werden die letzten Karten in Ihrer Hand, egal wie viele Karten Sie ziehen, in der richtigen Reihenfolge angeordnet.
Python-Implementierung:
def insertion_sort(n): if len(n) == 1: return n b = insertion_sort(n[1:]) m = len(b) for i in range(m): if n[0] <= b[i]: return b[:i]+[n[0]]+b[i:] return b + [n[0]]
Eine andere Version:
def insertion_sort(lst): if len(lst) == 1: return lst for i in xrange(1, len(lst)): temp = lst[i] j = i - 1 while j >= 0 and temp < lst[j]: lst[j + 1] = lst[j] j -= 1 lst[j + 1] = temp return lst
Für detailliertere Erklärungen einfacher Analysen und Codebeispiele für die Verwendung des Einfügungssortierungsalgorithmus in Python achten Sie bitte auf PHP Chinesische Website!