Ausrichtungsalgorithmus durch Einfügemethode in Python

Studie

Weil das Buch, das ich las, zum Kapitel über Algorithmen kam. Übe Sortierung einfügen ist. Gefällt mir Sortieren Sie den Inhalt des Arrays in ABC-Reihenfolge Sortieren.

insertion_sort.py


# coding: UTF-8
#Japanisch kann ohne ↑ nicht in den Code aufgenommen werden
List = ['Fred', 'Alex', 'Diana', 'Byron', 'Carol' ]

#Einfügemethode
N = 2 #Die Einfügemethode beginnt mit dem Berühren des zweiten Elements

while len(List) >= N: #Solange der Wert von N die Länge der Liste nicht überschreitet
    pip = List[N-1] #Drehen Sie das N-te Element, verschieben Sie den Inhalt an einen temporären Ort.
    List[N-1] = 'BLANK' #Machen Sie eine Lücke (es ist nicht erforderlich, die Lücke anzugeben)
    
    sukima = N-1 #Position der ersten Lücke
    while sukima != 0: #Solange "über der Lücke ein Name steht (= die aktuelle Lücke ist das zweite und nachfolgende Element)"
        if List[sukima-1] > pip: #Wenn "knapp über dem Spalt größer als der Drehpunkt ist"
            List[sukima] = List[sukima-1] #Lass es in die Lücke fallen
            sukima = sukima-1 #Die Spitze ist eine neue Lücke.
        else: break

    List[sukima] = pip #Setzen Sie den Drehpunkt wieder in die Lücke ein.
    N = N + 1 #Inkrementieren und Verarbeitung wiederholen

#Ausgabe
for x in List:
    print x 

Vergleichen Sie in der Mitte die Größe des Pivots und die Zeichenfolge des Elements. Ich bin mir nicht sicher, was "die Größe der Zeichenkette" hier bedeutet. Aber min (List) gibt Arex zurück und max (List) gibt Fred zurück, also Ich gehe davon aus, dass die Zeichenkette umso größer ist, je später in der ABC-Reihenfolge.

Ausführungsergebnis

Ergebnis Es macht Spaß, wenn es funktioniert.

Verweise

Einführung in die Informatik p218-p222

Recommended Posts

Ausrichtungsalgorithmus durch Einfügemethode in Python
Genetischer Algorithmus in Python
Simplex-Methode (Einzelmethode) in Python
Algorithmus in Python (Bellman-Ford-Methode, Bellman-Ford)
Private Methode in Python
Algorithmus in Python (Dijkstra)
Implementiert in Python PRML Kapitel 4 Klassifizierung nach Perceptron-Algorithmus
Algorithmus in Python (Haupturteil)
Reproduzieren Sie die euklidische Methode der gegenseitigen Teilung in Python
Algorithmus in Python (Dichotomie)
Implementieren Sie den Dijkstra-Algorithmus in Python
Das Unterdrücken von Methodenüberschreibungen in Python
Sortieren nach Datum in Python
Algorithmus in Python (Breitenprioritätssuche, bfs)
Sortieralgorithmus und Implementierung in Python
Schreiben Sie A * (A-Stern) -Algorithmen in Python
Lassen Sie uns mit Python 2 einen Investitionsalgorithmus entwickeln
Algorithmus in Python (Tiefenprioritätssuche, dfs)
Implementierte Methode zur Weitergabe von Etiketten in Python
Implementierung eines einfachen Algorithmus in Python 2
Algorithmus (Segmentbaum) in Python (Übung)
Python-Algorithmus
Methode zum Erstellen einer Python-Umgebung in Xcode 6
Elektronenmikroskopsimulation in Python: Mehrschichtmethode (1)
Elektronenmikroskopsimulation in Python: Mehrschichtmethode (2)
Lesen Sie die Datei Zeile für Zeile mit Python
Automatisieren Sie Jobs, indem Sie Dateien in Python bearbeiten
Lesen Sie die Datei Zeile für Zeile mit Python
Common Mock von Moto im Unit-Test von Python
Szenenerkennung nach GIST-Feature-Quantität in Python
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Unittest in Python
Lernen Sie das Entwurfsmuster "Vorlagenmethode" in Python
Epoche in Python
Zwietracht in Python
Dynamisches Ersetzen der nächsten Methode in Python
Lernen Sie das Entwurfsmuster "Factory Method" in Python
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reflexion in Python
Konstante in Python
nCr in Python.