Zuhause Persönliche Finanzen Wie funktioniert die Quicksort-Technik in Java? - Dummies

Wie funktioniert die Quicksort-Technik in Java? - Dummies

Video: Quicksort Algorithmus / Quick Sort Sortierverfahren mit Beispiel (deutsch) 2024

Video: Quicksort Algorithmus / Quick Sort Sortierverfahren mit Beispiel (deutsch) 2024
Anonim

Hier erfahren Sie, wie eine der am häufigsten verwendeten Sortiertechniken in Java funktioniert. Diese Technik heißt Quicksort, und ist eine sehr geniale Rekursion.

Für die meisten von uns herauszufinden, wie Sortieralgorithmen wie Quicksort nur eine intellektuelle Übung sind. In der Java API ist bereits eine Sortierung integriert.

Die Quicksort-Technik sortiert ein Array von Werten mithilfe von Rekursion. Seine grundlegenden Schritte sind somit:

  1. Wählen Sie einen beliebigen Wert aus, der innerhalb des Wertebereichs im Array liegt.

    Dieser Wert ist der Drehpunkt . Die häufigste Methode zur Auswahl des Drehpunkts besteht darin, einfach den ersten Wert im Array auszuwählen. Die Leute haben einen Doktortitel geschrieben, um zu erfahren, wie man einen Drehpunkt wählt, der zu einer schnelleren Sortierung führt. Bleiben Sie bei der Verwendung des ersten Elements im Array.

  2. Ordnen Sie die Werte im Array neu an, sodass alle Werte, die kleiner als der Drehpunkt sind, auf der linken Seite des Arrays liegen und alle Werte, die größer oder gleich dem Drehpunkt sind, auf der rechten Seite des Arrays. Array.

    Der Pivot-Wert gibt die Grenze zwischen der linken Seite und der rechten Seite des Arrays an. Es wird wahrscheinlich kein Totpunkt sein, aber das spielt keine Rolle. Dieser Schritt wird als Partitionierung bezeichnet, und die linke und rechte Seite der Arrays sind Partitionen.

  3. Behandeln Sie nun jeden der beiden Abschnitte des Arrays als ein separates Array und beginnen Sie mit Schritt 1 für diesen Abschnitt.

    Das ist der rekursive Teil des Algorithmus.

Der schwierigste Teil des Quicksort-Algorithmus ist der Partitionierungsschritt, der die Partition so umordnen muss, dass alle Werte, die kleiner als der Drehpunkt sind, auf der linken Seite liegen und alle Elemente, die größer als der Drehpunkt sind Punkt sind auf der rechten Seite. Nehmen wir an, das Array hat diese zehn Werte:

38 17 58 22 69 31 88 28 86 12

Hier ist der Drehpunkt 38, und die Aufgabe des Partitionierungsschritts besteht darin, das Array auf etwas wie das folgende zu verschieben: < 17 12 22 28 31 38 88 69 86 58

Beachten Sie, dass die Werte immer noch nicht in Ordnung sind. Das Array wurde jedoch um den Wert 38 herum geteilt: Alle Werte, die kleiner als 38 sind, befinden sich links von 38, und alle Werte, die größer als 38 sind, befinden sich rechts von 38.

Jetzt können Sie die Array in zwei Partitionen mit dem Wert 38 und wiederholen Sie den Prozess für jede Seite. Der Pivot-Wert selbst geht mit der linken Partition, also ist die linke Partition dies:

17 12 22 28 31 38

Dieses Mal wählt der Partitionierungsschritt 17 als Pivot-Punkt und ordnet die Elemente wie folgt neu an: > 12 17 22 28 31 38

Wie Sie sehen, ist dieser Teil des Arrays jetzt sortiert.Unglücklicherweise erkennt Quicksort dies an diesem Punkt nicht, so dass es ein paar weitere Rekursionen braucht, um sicher zu gehen. Aber das ist der grundlegende Prozess.

Wie funktioniert die Quicksort-Technik in Java? - Dummies

Die Wahl des Herausgebers

Bearbeiten in Photoshop Elements 10 Schnellfoto-Bearbeitungsmodus - Schnuller

Bearbeiten in Photoshop Elements 10 Schnellfoto-Bearbeitungsmodus - Schnuller

Schneller Foto-Bearbeitungsmodus ist eine abgespeckte Version des Modus "Full Photo Edit", der einfach grundlegende Fixingtools bereitstellt und mit einigen einzigartigen Funktionen aufwartet, z. B. eine Vorher-Nachher-Vorschau Ihres Bildes. Hier ist ein Schritt-für-Schritt-Workflow, den Sie im Schnellfoto-Bearbeitungsmodus verwenden können, um Ihre Fotos zu reparieren:

Zum Optimieren von Photoshop Elements-Bildern mit Fotoeffekten - Dummies

Zum Optimieren von Photoshop Elements-Bildern mit Fotoeffekten - Dummies

Fotoeffekte in Photoshop Elements 11 funktionieren wie Anwenden von Filtern; Das Dialogfeld "Filtergalerie" bietet Ihnen zahlreiche Optionen zum Anwenden eines Filters. Das geführte Bedienfeld bietet Ihnen Filtereffekte und führt Sie dann durch die Schritte zum Anpassen von Helligkeitswerte, Ändern von Farbton und Sättigung und Durchführen weiterer Anpassungen zum Vervollkommnen des Ergebnisses. Sie ...

Eingeben des Absatztyps in Photoshop Elements 11 - Dummies

Eingeben des Absatztyps in Photoshop Elements 11 - Dummies

Absatztyp in Photoshop Elements 11 ist ähnlich zu dem Text, den Sie in ein Textverarbeitungsprogramm eingeben, mit der Ausnahme, dass er in einem Textfeld oder einem Begrenzungsrahmen enthalten ist. Wenn Sie größere Textabschnitte haben, die Sie in ein Bild eingeben möchten, ist die Eingabe des Textes als Absatztyp die praktischste Option. Während ...

Die Wahl des Herausgebers

PHP-Anweisungen - Dummys

PHP-Anweisungen - Dummys

PHP ist eine Skriptsprache, die speziell für die Verwendung im Internet entwickelt wurde. Es enthält Funktionen, die Sie bei der Programmierung der Aufgaben unterstützen, die für die Entwicklung dynamischer Webanwendungen erforderlich sind. Diese Tabelle gibt einen kurzen Überblick über einige der Anweisungen, die Sie häufig verwenden werden: Anweisung Beschreibung array ("key" => "value", ...); Casts a ...

PHP-Schablonen-Systeme - Schablonen-Systeme

PHP-Schablonen-Systeme - Schablonen-Systeme

Können die Menge an Arbeit reduzieren, die Sie für die Erstellung einer Website in PHP benötigen. Wenn Sie eine Website erstellen, verwenden Sie häufig das gleiche Layout für die gesamte Website. Sie haben eine obere Portion, vielleicht mit einem Menü; ein Hauptinhaltsbereich; und ein unterer Teil, vielleicht mit Links oder ...

Make MySQL Datenbank Änderungen mit den ALTER Query - Dummies

Make MySQL Datenbank Änderungen mit den ALTER Query - Dummies

Die ALTER Query wird verwendet, um die Struktur von eine MySQL-Datenbank. In dieser Liste wird die Syntax für die Änderungen angezeigt, die Sie wahrscheinlich vornehmen möchten: ADD-Spaltenbezeichnung ALTER-Spaltenname SET-DEFAULT-Wert ALTER-Spaltenname DROP DEFAULT CHANGE-Spaltenname newcolname-Definition DROP-Spaltenname MODIFY-Spaltenname RENAME newtablename

Die Wahl des Herausgebers

Hochgeschwindigkeitsdatencaching mit NoSQL - Dummies

Hochgeschwindigkeitsdatencaching mit NoSQL - Dummies

Mit NoSQL haben Sie Hochgeschwindigkeits-Caching. Stellen Sie sich vor, Sie sind Bankangestellte und arbeiten mit drei anderen Kollegen zusammen. Jeder hat eine Reihe von Leuten, die bedient werden sollen. Einer der Kunden bleibt jedoch in der Schlange, um zu fragen, ob sein Scheck bereits eingelöst und der Betrag seinem Konto gutgeschrieben wurde. Wenn Sie ...

Wie man Einsichten aus Big Data kommuniziert - Dummies

Wie man Einsichten aus Big Data kommuniziert - Dummies

Big Data kann helfen, Einblicke zu gewinnen. Unternehmen gewinnen Wettbewerbsvorteile, wenn die richtigen Informationen zur richtigen Zeit an die richtigen Leute geliefert werden. Dies bedeutet, Erkenntnisse und Informationen aus Daten zu extrahieren und sie Entscheidungsträgern auf eine Weise zu vermitteln, die sie leicht verstehen. Schließlich sind Menschen weniger wahrscheinlich zu handeln, wenn sie ...

Zookeeper und HBase Reliability - dummies

Zookeeper und HBase Reliability - dummies

Zookeeper ist ein verteiltes Cluster von Servern, das gemeinsam zuverlässige Koordinations- und Synchronisationsdienste für Cluster-Anwendungen bereitstellt. .. Zugegeben, der Name "Zookeeper" mag auf den ersten Blick eine seltsame Wahl sein, aber wenn Sie verstehen, was es für einen HBase-Cluster tut, können Sie die Logik dahinter sehen. Beim Erstellen und Debuggen von verteilten Anwendungen ...