Ausführliche Erläuterung der Vergleichssortierung und der Schnellsortierung
Quick Sort (kurz Quick Sort) wird aufgrund seiner hohen Effizienz (durchschnittliches O(nlogn)) häufig in schriftlichen Prüfungsfragen getestet.
Der erste Schritt zum schnellen Sortieren besteht darin, eine „Basis“ auszuwählen, die zum Vergleich und Austausch mit anderen Zahlen verwendet wird. Die Wahl dieser „Basis“ wirkt sich auf die Effizienz der schnellen Sortierung aus, aber wenn Sie die Basis um der Basis willen wählen, wird das Pferd von hinten aufgezäumt. Um beispielsweise die optimale Basis zu finden, müssen Sie den Median in der gesamten zu sortierenden Sequenz finden, aber das Finden des Medians ist tatsächlich sehr kostspielig. Die Wahl der Basis ist normalerweise das erste Objekt, das mittlere Objekt oder das letzte Objekt in der zu sortierenden Reihenfolge. In diesem Artikel wird die Auswahl des ersten Elements als Beispiel für eine kurze Analyse und Implementierung der Schnellsortierung verwendet.
Wählen Sie am Beispiel der zu sortierenden Spalte {6, 5, 3, 1, 7, 2, 4} das erste Element 6 als Basis aus.
Nachdem Sie die Basis ausgewählt haben, müssen Sie die Array-Elemente vergleichen und mit ihnen austauschen. Der zweite Schritt der Schnellsortierung besteht darin, einen „Sentinel“ für das erste und das letzte Element des Arrays festzulegen.
Nachdem Sie die Basis ausgewählt und den Wächter eingestellt haben, besteht der nächste Schritt darin, den Vergleich zu starten. Platzieren Sie die Basis mit dem Der letzte Sentinel j wird zuerst verglichen, und wenn er größer als Sentinel j ist, wird er mit Sentinel i+1 ausgetauscht.
Zu diesem Zeitpunkt wird die Basis nicht mehr mit Sentinel j verglichen, sondern mit Sentinel i. Wenn die Basis größer als Sentinel i ist, bewegt sich der Sentinel rückwärts, bis er es ist Bisher wurde Sentinel J-1 gleichzeitig ausgetauscht.
Wiederholen Sie die obigen Schritte und vergleichen Sie die Basis mit Sentinel J.
Das Endergebnis zeigt, dass die Position von Sentinel i = die Position von Sentinel j ist. Zu diesem Zeitpunkt wird dieser Position der Basiswert zugewiesen.
Auf diese Weise sind die Zahlen auf der linken Seite der Basis 6 alle kleiner als diese und die Zahlen auf der rechten Seite alle größer als sie Um die gleichen Schritte für das linke und rechte Array auszuführen, um die Basis auszuwählen und Sentinel festzulegen, kann die Sortierung am Ende abgeschlossen werden.
Java
1 package com.algorithm.sort.quick; 2 3 import java.util.Arrays; 4 5 /** 6 * 快速排序 7 * Created by yulinfeng on 2017/6/26. 8 */ 9 public class Quick {10 public static void main(String[] args) {11 int[] nums = {6, 5, 3, 1, 7, 2, 4};12 nums = quickSort(nums, 0, nums.length - 1);13 System.out.println(Arrays.toString(nums));14 }15 16 /**17 * 快速排序18 * @param nums 待排序数组序列19 * @param left 数组第一个元素索引20 * @param right 数组最后一个元素索引21 * @return 排好序的数组序列22 */23 private static int[] quickSort(int[] nums, int left, int right) {24 if (left = temp) {30 j--;31 }32 if (i
Python3
1 #快速排序 2 def quick_sort(nums, left, right): 3 if left = temp: 9 j -= 110 if i
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Vergleichssortierung und der Schnellsortierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Wie lindert Java plattformspezifische Probleme? Java implementiert plattformunabhängig über JVM- und Standardbibliotheken. 1) Bytecode und JVM verwenden, um die Unterschiede für das Betriebssystem abstrahieren; 2) Die Standardbibliothek bietet plattformübergreifende APIs wie Pfade der Klassenverarbeitungsdateien und die Codierung von Charset Class Processing. 3) Verwenden Sie Konfigurationsdateien und Multi-Plattform-Tests in tatsächlichen Projekten zur Optimierung und Debuggierung.

Java'SplatformIndependenceEnhancesMicroservicesArchitecture byFeringDeploymentFlexibilität, Konsistenz, Skalierbarkeit und Portabilität.1) EinsatzFlexibilitätsmarkroservicestorunonanyplatformwithajvm.2) konsistenzacrossservicessimplimplimplifiesDevention und

Graalvm verbessert die Unabhängigkeit der Java-Plattform auf drei Arten: 1. Cross-Sprach-Interoperabilität und ermöglicht es Java, nahtlos mit anderen Sprachen zusammenzuarbeiten; 2. Unabhängige Laufzeitumgebung, kompilieren Sie Java -Programme in lokale ausführbare Dateien über GraalvmnativeImage; 3. Die Leistungsoptimierung generiert Graal Compiler einen effizienten Maschinencode, um die Leistung und Konsistenz von Java -Programmen zu verbessern.

ToeffectiveTeTestJavaApplicationsforplatformCompatibilität, folgt der THESESTEPS: 1) SetupautomatedTestingAcrossMultiPlatformseususecitools-ähnlichemkinsorgithubactions.2) DirimesManualTestingonRealhardwaretocatchissusisNotFoundincincien-Birgen.3) checkcross-pla

Der Java-Compiler erkennt die Unabhängigkeit der Java-Plattform, indem es den Quellcode in plattformunabhängige Bytecode konvertiert und Java-Programmen mit installiertem Betriebssystem mit JVM ausgeführt wird.

BytecodeachieVesplattformindependencyBeineingexecutedByavirtualMachine (VM), ZulassencodetorunonanyPlatformWiththeApprotecuse -Forexample, JavabytecodecanrunonanyDeviceWithajvm, Enabling "Writeonce, Runanywhere," Funktionalität "Funktionalität" Funktionalität "Funktionalität" Funktionalität "Funktionalität" Funktionalität "Funktionalität" Funktionalität "Funktionalität" functionaly.- "Funktionalität" Funktionalität "

Java kann keine 100% ige Plattformunabhängigkeit erreichen, aber die Unabhängigkeit der Plattform wird über JVM und Bytecode implementiert, um sicherzustellen, dass der Code auf verschiedenen Plattformen ausgeführt wird. Spezifische Implementierungen umfassen: 1. Zusammenstellung in Bytecode; 2. Interpretation und Ausführung von JVM; 3. Konsistenz der Standardbibliothek. JVM-Implementierungsunterschiede, Betriebssystem- und Hardwareunterschiede sowie die Kompatibilität von Bibliotheken von Drittanbietern können sich jedoch auf die Unabhängigkeit der Plattform auswirken.

Java realisiert die Unabhängigkeit der Plattform durch "einmal schreiben, überall rennen" und verbessert die Code -Wartbarkeit: 1. REUSE der Code und reduziert die doppelte Entwicklung; 2. Niedrige Wartungskosten, es ist nur eine Änderung erforderlich; 3. Die Effizienz der High -Team -Kollaboration ist hoch und bequem für den Wissensaustausch.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

Dreamweaver CS6
Visuelle Webentwicklungstools

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool
