


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 < right) {25 int temp = nums[left]; //基数26 int i = left; //哨兵i27 int j = right; //哨兵j28 while (i < j) {29 while (i < j && nums[j] >= temp) {30 j--;31 }32 if (i < j) {33 nums[i] = nums[j];34 i++;35 }36 while (i < j && nums[i] < temp) {37 i++;38 }39 while (i < j) {40 nums[j] = nums[i];41 j--;42 }43 }44 nums[i] = temp;45 quickSort(nums, left, i - 1);46 quickSort(nums, i + 1, right);47 }48 return nums;49 }50 }
Python3
1 #快速排序 2 def quick_sort(nums, left, right): 3 if left < right: 4 temp = nums[left] #基数 5 i = left #哨兵i 6 j = right #哨兵j 7 while i < j: 8 while i < j and nums[j] >= temp: 9 j -= 110 if i < j:11 nums[i] = nums[j]12 i += 113 while i < j and nums[i] < temp:14 i += 115 if i < j:16 nums[j] = nums[i]17 j -= 118 nums[i] = temp19 quick_sort(nums, left, i - 1)20 quick_sort(nums, i + 1, right)21 22 return nums23 24 nums = [6, 5, 3, 1, 7, 2, 4]25 nums = quick_sort(nums, 0, len(nums) - 1)26 print(nums)
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!

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

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Heutzutage werden Leistung und Funktionen von Mobiltelefonen immer leistungsfähiger. Nahezu alle Mobiltelefone sind mit komfortablen NFC-Funktionen ausgestattet, um Benutzern das mobile Bezahlen und die Identitätsauthentifizierung zu erleichtern. Einige Xiaomi 14Pro-Benutzer wissen jedoch möglicherweise nicht, wie sie die NFC-Funktion aktivieren können. Als nächstes möchte ich es Ihnen im Detail vorstellen. Wie aktiviere ich die NFC-Funktion auf dem Xiaomi 14Pro? Schritt 1: Öffnen Sie das Einstellungsmenü Ihres Telefons. Schritt 2: Suchen Sie die Option „Verbinden und teilen“ oder „Drahtlos und Netzwerke“ und klicken Sie darauf. Schritt 3: Suchen Sie im Menü „Verbindung & Freigabe“ oder „Drahtlos & Netzwerke“ nach „NFC & Zahlungen“ und klicken Sie darauf. Schritt 4: Suchen Sie nach „NFC Switch“ und klicken Sie darauf. Im Allgemeinen ist die Standardeinstellung deaktiviert. Schritt 5: Klicken Sie auf der NFC-Umschaltseite auf die Schaltfläche zum Einschalten.

Die CAD-Dateien des iPhone 16 Pro wurden veröffentlicht und das Design stimmt mit früheren Gerüchten überein. Letzten Herbst hat das iPhone 15 Pro eine Aktionstaste hinzugefügt, und in diesem Herbst plant Apple offenbar, kleinere Anpassungen an der Größe der Hardware vorzunehmen. Hinzufügen einer Aufnahmetaste Gerüchten zufolge könnte das iPhone 16 Pro eine zweite neue Taste hinzufügen, was nach dem letzten Jahr das zweite Jahr in Folge sein wird, in dem eine neue Taste hinzugefügt wird. Gerüchten zufolge wird die neue Aufnahmetaste auf der unteren rechten Seite des iPhone 16 Pro angebracht. Dieses Design soll die Kamerasteuerung komfortabler machen und auch die Verwendung der Aktionstaste für andere Funktionen ermöglichen. Dieser Knopf wird nicht länger nur ein gewöhnlicher Auslöser sein. Bezüglich der Kamera, vom aktuellen iP

Das Gleiten des Bildschirms durch die Luft ist eine Funktion von Huawei, die in der Huawei mate60-Serie sehr gelobt wird. Diese Funktion nutzt den Lasersensor am Telefon und die 3D-Tiefenkamera der Frontkamera, um eine Reihe von Funktionen auszuführen, die nicht erforderlich sind Funktion zum Berühren des Bildschirms, z. B. das Wischen von TikTok aus der Luft, aber wie kann man mit dem Huawei Pocket 2 TikTok aus der Luft wischen? Wie mache ich mit Huawei Pocket2 Screenshots aus der Luft? 1. Öffnen Sie die Einstellungen des Huawei Pocket2 2. Wählen Sie dann [Barrierefreiheit]. 3. Klicken Sie, um [Smart Perception] zu öffnen. 4. Schalten Sie einfach die Schalter [Air Swipe Screen], [Air Screenshot] und [Air Press] ein. 5. Wenn Sie es verwenden, müssen Sie es 20–40 cm vom Bildschirm entfernt halten, Ihre Handfläche öffnen und warten, bis das Handflächensymbol auf dem Bildschirm erscheint.

WPS ist unsere häufig verwendete Office-Software. Bei der Bearbeitung langer Artikel sind die Schriftarten oft zu klein, um klar gesehen zu werden, daher werden die Schriftarten und das gesamte Dokument angepasst. Zum Beispiel: Durch Anpassen des Zeilenabstands wird das gesamte Dokument sehr klar. Ich schlage vor, dass alle Freunde diesen Arbeitsschritt lernen. Die spezifischen Arbeitsschritte sind wie folgt. Öffnen Sie die WPS-Textdatei, die Sie anpassen möchten, suchen Sie die Symbolleiste für die Absatzeinstellung im Menü [Start] und Sie sehen das kleine Symbol für die Einstellung des Zeilenabstands (im Bild als roter Kreis dargestellt). 2. Klicken Sie auf das kleine umgekehrte Dreieck in der unteren rechten Ecke der Zeilenabstandseinstellung. Der entsprechende Zeilenabstandswert wird angezeigt. Sie können den 1- bis 3-fachen Zeilenabstand auswählen (wie durch den Pfeil in der Abbildung dargestellt). 3. Oder klicken Sie mit der rechten Maustaste auf den Absatz und er wird angezeigt

Laut Statistiken vom 2. März hat der Gesamt-TVL des Bitcoin-Zweitschichtnetzwerks MerlinChain 3 Milliarden US-Dollar erreicht. Darunter machten die ökologischen Bitcoin-Vermögenswerte 90,83 % aus, darunter BTC im Wert von 1,596 Milliarden US-Dollar und BRC-20-Vermögenswerte im Wert von 404 Millionen US-Dollar. Letzten Monat erreichte der Gesamt-TVL von MerlinChain innerhalb von 14 Tagen nach dem Start der Absteckaktivitäten 1,97 Milliarden US-Dollar und übertraf damit Blast, das im November letzten Jahres gestartet wurde und auch das jüngste und gleichermaßen auffälligste ist. Am 26. Februar überstieg der Gesamtwert der NFTs im MerlinChain-Ökosystem 420 Millionen US-Dollar und wurde damit neben Ethereum zum öffentlichen Kettenprojekt mit dem höchsten NFT-Marktwert. Projekteinführung MerlinChain ist eine OKX-Unterstützung

Was ist der Unterschied im Pfad „Arbeitsplatz“ in Win11? Schneller Weg, es zu finden! Da das Windows-System ständig aktualisiert wird, bringt auch das neueste Windows 11-System einige neue Änderungen und Funktionen mit sich. Eines der häufigsten Probleme besteht darin, dass Benutzer den Pfad zu „Arbeitsplatz“ im Win11-System nicht finden können. Dies war in früheren Windows-Systemen normalerweise ein einfacher Vorgang. In diesem Artikel erfahren Sie, wie sich der Pfad „Arbeitsplatz“ im Win11-System unterscheidet und wie Sie ihn schnell finden. Unter Windows1

Bei unserer Arbeit verwenden wir häufig WPS-Software. Es gibt viele Möglichkeiten, Daten in WPS-Software zu verarbeiten, und die Funktionen sind auch sehr leistungsfähig. Wir verwenden häufig Funktionen, um Durchschnittswerte, Zusammenfassungen usw. zu ermitteln Methoden, die für statistische Daten verwendet werden können, wurden für alle in der WPS-Softwarebibliothek vorbereitet. Nachfolgend stellen wir die Schritte zum Sortieren der Ergebnisse in WPS vor. Nachdem Sie dies gelesen haben, können Sie aus der Erfahrung lernen. 1. Öffnen Sie zunächst die Tabelle, die eingestuft werden soll. Wie nachfolgend dargestellt. 2. Geben Sie dann die Formel =rank(B2, B2: B5, 0) ein und achten Sie darauf, 0 einzugeben. Wie nachfolgend dargestellt. 3. Drücken Sie nach Eingabe der Formel die Taste F4 auf der Computertastatur. In diesem Schritt wird der relative Bezug in einen absoluten Bezug umgewandelt.

Unterschiede und vergleichende Analyse zwischen C-Sprache und PHP C-Sprache und PHP sind beide gängige Programmiersprachen, weisen jedoch in vielen Aspekten offensichtliche Unterschiede auf. In diesem Artikel wird eine vergleichende Analyse der C-Sprache und PHP durchgeführt und die Unterschiede zwischen ihnen anhand spezifischer Codebeispiele veranschaulicht. 1. Syntax und Verwendung: C-Sprache: Die C-Sprache ist eine prozessorientierte Programmiersprache, die hauptsächlich für die Programmierung auf Systemebene und die eingebettete Entwicklung verwendet wird. Die Syntax der C-Sprache ist relativ einfach und auf niedriger Ebene, kann den Speicher direkt bedienen und ist effizient und flexibel. Die C-Sprache betont die Vollständigkeit des Programms durch den Programmierer
