Mit einem Merge sort in Python kann beschleunigen Sortierung Aufgaben.
PYTHON
Sortieren von Listen von Daten ist ein Problem, das Programmierer geärgert hat sich seit Beginn der Computer-Programmierung. Sortierung keine Liste von Daten kann am Ende als Erinnerung-und zeitintensive Aufgabe.Aus diesem Grund wurden verschiedene Art Methoden erfunden worden, um die Herausforderung und Mühe des Sortierens zu minimieren. Eine Methode ist, verschmelzen Sortierung. Sie unterteilt eine Liste rekursiv in singulären Elemente und rekombiniert die Liste in sortierter Form. Jede Programmiersprache, die Rekursion unterstützt, wie Python, umsetzen können einen Merge sort.
Was Sie benötigen
Python Interpreter mit Interactive Development Environment
Definieren Sie den "mergesort"-Funktion. Diese grundlegende Funktion ruft sich selbst rekursiv, Spaltung der Liste Größe in der Hälfte mit jedem Anruf. Sobald die Funktion mergesort trifft eine Liste mit einem Element, stoppt die Rekursion und die Element-Renditen. Da die mergesort Rekursion abwickelt, wird jeder kleinere Liste zusammen in sortierter Reihenfolge zusammengeführt. Dieses Beispiel zeigt eine grundlegende mergesort Funktion, die eine Liste als Argument:
def mergesort (li):
. . . if len (li) 2:
. . . Rückkehr li
. . . mid = len (li) / 2
. . . first = mergesort (li [: Mitte])
. . . last = mergesort (li [Mitte:])
. . . zurück zu verschmelzen (first, last)
Richten Sie die Merge-Methode. Diese Funktion wird als Sortierverfahren dienen, es gibt eine sortierte Liste von Elementen. Die Merge-Methode nimmt zwei bereits sortierten Listen. Es definiert dann eine interne Liste "sortiert", dass die kombinierte sortiert Argument Listen vertreten wird. Die Merge-Methode erreicht dies, indem man das kleinste Element und Einfügen in einer neuen Liste "sortiert". Sobald einer der Listen beendet ist, wird die andere Liste in ihrer Gesamtheit eingeführt wird.
def merge (x, y):
. . . sortiert = []
Führen Sie die Listen in der Merge-Methode. Die "while"-Schleife im Beispiel vergleicht jede Liste Punkt für Punkt, wobei das kleinste Element und Einfügen in einer neuen Liste "sortiert". Sobald einer der Listen beendet ist, wird die andere Liste in ihrer Gesamtheit eingeführt wird, und die neuen sortierten Liste zurückgegeben:
. . . i, j = 0, 0
. . . während ich Len (x) und j len (y):
. . . wenn x [i] = y [j]:
. . . sorted.append (x [i])
. . . i + = 1
. . . anderes:
. . . sorted.append (y [j])
. . . j + = 1
. . . sortiert + = x [I:]
. . . sortiert + = y [: j]
. . . Rückkehr sortiert
No hay comentarios:
Publicar un comentario