Ein Memo, das ich schnell in Python geschrieben habe

Ich habe mir eine Notiz über das schnelle Sortieren geschrieben.

Was ist schnelle Sortierung

Code

quick_sort.py


def partition(A, p, r):
    x = A[r-1]
    i = p-1
    for j in range(p, r-1):
        if A[j] <= x:
            i += 1
            A[i], A[j] = A[j], A[i]
    A[i+1], A[r-1] = A[r-1], A[i+1]
    
    return i+1
    
n = int(input())
A = list(map(int, input().split()))


def quick_sort(A, p, r):
    if p < r:
        q = partition(A, p, r)
        quick_sort(A, p, q)
        quick_sort(A, q+1, r)
    return A
        
print(quick_sort([3, 1, 10, 2.5, 11, 3, 21,4, -1], 0, 9))
# [-1, 1, 2.5, 3, 3, 4, 10, 11, 21]

Da der obige Algorithmus eine konstante Auswahl von Kriterien (den letzten Wert) aufweist, ist er abhängig von der Anordnung der Daten ineffizient. Der Berechnungsbetrag kann O (n ^ 2) sein. Die Wiederholungen sind möglicherweise zu tief und es kann ein Fehler auftreten Daher müssen Möglichkeiten zur Auswahl von Kriterien wie Randomisierung und Auswahl des Medianwerts entwickelt werden.

Referenz

Sortieralgorithmus und Implementierung in Python

Recommended Posts

Ein Memo, das ich schnell in Python geschrieben habe
Ich habe eine Klasse in Python3 und Java geschrieben
Ich habe Python auf Japanisch geschrieben
Ein Memo, dass ich den Datenspeicher mit Python berührt habe
Ich habe Fizz Buzz in Python geschrieben
Ich habe die Warteschlange in Python geschrieben
Ich habe den Stack in Python geschrieben
Ich habe versucht, "ein Programm, das doppelte Anweisungen in Python entfernt"
Ich habe ein Skript geschrieben, das das Bild in zwei Teile teilt
Quicksort in Python
Ich habe ein Pay-Management-Programm in Python erstellt!
Ich habe ein Passwort-Tool in Python erstellt.
Ein Memo, das doppelte Anführungszeichen in voller Breite mit regulären Python-Ausdrücken verarbeitet
[Python] Ein Memo, das ich versucht habe, mit Asyncio zu beginnen
Ich habe eine Funktion zum Laden des Git-Erweiterungsskripts in Python geschrieben
Ich habe ein Skript geschrieben, um Webseiten-Links in Python zu extrahieren
Ich habe einen Code geschrieben, um die Quaternion mit Python in einen Ölerwinkel vom Typ z-y-x umzuwandeln
Ich habe eine Webanwendung in Python erstellt, die Markdown in HTML konvertiert
Ich möchte mit Python ein Fenster erstellen
Ich habe versucht, mit Python ein Tippspiel zu spielen
[Python] Ich habe einen einfachen Code geschrieben, der automatisch AA generiert (Ascii Art).
Ein Programm, das doppelte Anweisungen in Python entfernt
Geschrieben "Einführung in die Effektüberprüfung" in Python
Ein Memo, das ich in Python zusammengeführt habe
Ich habe in Python einen Discord-Bot erstellt, der übersetzt, wenn er reagiert
Ich habe ein Designmuster in der Kotlin Prototype Edition geschrieben
Ich habe versucht, einen Formatierer zu entwickeln, der Python-Protokolle in JSON ausgibt
[Python] Ich habe gewaltsam eine kurze Funktion zur Erzeugung von Parlin-Geräuschen in Numpy geschrieben.
Ich habe versucht, ein Python 3-Modul in C hinzuzufügen
[IOS] Ich habe ein Widget erstellt, das den Trend von Qiita in Pythonista3 anzeigt. [Python]
Ich habe einen japanischen Parser auf Japanisch mit Pyparsing geschrieben.
Ich habe FizzBuzz in Python mit der Support Vector Machine (Bibliothek LIVSVM) geschrieben.
Ich habe ein Caesar-Kryptografieprogramm in Python erstellt.
Ich habe einen Tri-Tree geschrieben, der für die Implementierung von Hochgeschwindigkeitswörterbüchern in D-Sprache und Python verwendet werden kann
Ich habe ein Diagramm wie R glmnet in Python für die spärliche Modellierung mit Lasso geschrieben
Ich habe versucht, eine Klasse zu erstellen, mit der Json in Python problemlos serialisiert werden kann
[Basic Information Engineer Examination] Ich habe einen linearen Suchalgorithmus in Python geschrieben.
Ich möchte eine Prioritätswarteschlange erstellen, die mit Python (2.7) aktualisiert werden kann.
Ich habe PyQCheck, eine Bibliothek, die QuickCheck mit Python ausführen kann, in PyPI registriert.
[Anfänger] Was passiert, wenn ich ein Programm schreibe, das in Python auf PHP läuft?
Beachten Sie, dass ich den Algorithmus der kleinsten Quadrate verstehe. Und ich habe es in Python geschrieben.
Ich habe ein PyPI-Modul geschrieben, das den Parameterstil in Pythons sqlite3-Modul erweitert
In Python habe ich einen LINE-Bot erstellt, der Polleninformationen aus Standortinformationen sendet.
Ich möchte eine Variable in einen Python-String einbetten
Ich möchte Timeout einfach in Python implementieren
Ich habe ein Designmuster in der Kotlin Factory Edition geschrieben
Ich habe ein Designmuster in der Kotlin Builder Edition geschrieben
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Ich habe ein Designmuster in der Kotlin Singleton Edition geschrieben
Ich habe eine VM erstellt, auf der OpenCV für Python ausgeführt wird
Ich habe ein Designmuster in der Kotlin Adapter Edition geschrieben
Ich habe versucht, einen Pseudo-Pachislot in Python zu implementieren
Ich habe ein Designmuster in Kotlin geschrieben, das von Iterator bearbeitet wurde
Ich möchte eine Datei mit Python zufällig testen
Ich möchte mit einem Roboter in Python arbeiten.
Was ist in dieser Variablen (wenn das Python-Skript ausgeführt wird)?
Erstellen Sie in Python einen Dekorator, der Argumente dynamisch akzeptiert. Erstellen Sie einen Dekorator