[PYTHON] Schnelle Sortierung 2 | Einfach mit Listeneinschlussnotation

Pythons Stärken

Schnelle Sortierung nach Listeneinschlussnotation

quickSortSimple.py


data = [26,13,32,65,76,22,43,87,14,59]

def QuickSort(data):
    if len(data) <= 1: #Keine Notwendigkeit zu sortieren, wenn nur eine Daten vorhanden sind
        return data

    #Verwenden Sie den ersten Wert in der Liste als Referenzdaten (Pivot).
    pivot = data[0]
    #Erstellen Sie eine Liste mit Daten über dem Drehpunkt
    left = [ii for ii in data[1:] if ii >= pivot]
    #Liste mit weniger als Pivot-Daten
    right = [ii for ii in data[1:] if ii < pivot]

    left  = QuickSort(left)  #Links sortieren
    right = QuickSort(right) #Rechts sortieren
    #Sortierte Daten zurückgeben und zusammen schwenken
    return left + [pivot] + right

print(QuickSort(data))

#Ergebnis
# [87, 76, 65, 59, 43, 32, 26, 22, 14, 13]

Dieses Mal wird der Wert oben in der Liste als Dreh- und Angelpunkt verwendet. Es gibt jedoch verschiedene Optionen, z. B. den ersten Wert, den letzten Wert und den Medianwert der drei entsprechend ausgewählten Werte, und es ist schnell möglich, einen guten Wert auszuwählen. Es scheint der Schlüssel zu sein.

・ Andere Artikel zum Sortieren

Schnelle Sortierung | Größte Bestellung [Sortierung zusammenführen | In absteigender Reihenfolge sortieren] (https://qiita.com/ProOJI/items/c34441886a9d60fc9664) [Selektive Sortierung | Memorandum] (https://qiita.com/ProOJI/items/a7fc63c943f51a4e2e92)

Recommended Posts

Schnelle Sortierung 2 | Einfach mit Listeneinschlussnotation
Listeneinschlussnotation
Python> Verständnis / Inklusive Notation> Listenverständnis
Hinweis: Listeneinschlussnotation
Python-Übung 2 - List Inclusion Notation
Geschwindigkeit der Listeneinschlussnotation in Python
Inklusive Notation, nicht nur eine Liste
Beurteilung, ob durch Listeneinschlussnotation
Schnelle Sorte
Inklusive Notation von Python (über Liste und Generatorausdruck) [zusätzlich]