suchen
HeimWeb-Frontendjs-TutorialMerge-Sortieralgorithmus verstehen: Anfängerleitfaden zur Beherrschung des Sortieralgorithmus

In unseren vorherigen Artikeln haben wir eine ganze Reihe von Sortieralgorithmen wie Bubble Sort, Selection Sort und Insertion Sort kennengelernt. Wir haben gelernt, dass diese Sortieralgorithmen zwar sehr einfach zu implementieren sind, für große Datensätze jedoch nicht effizient sind, was bedeutet, dass wir einen effizienteren Algorithmus für die Sortierung großer Datensätze und damit für die Zusammenführungssortierung benötigen. In dieser Serie gehen wir darauf ein, wie die Zusammenführungssortierung funktioniert und wie sie in JavaScript implementiert werden kann. Bist du bereit?

Understanding merge sort algorithm: Beginner

Inhaltsverzeichnis

  1. Was ist der Zusammenführungssortierungsalgorithmus?
  2. So funktionieren Zusammenführungssortierungsalgorithmen
    • Zeitkomplexität
    • Weltraumkomplexität
  3. Implementierung in JavaScript
  4. Fazit

Was ist der Merge-Sort-Algorithmus?

Merge Sort Algorithm ist ein ausgezeichneter Sortieralgorithmus, der dem Divide-and-Conquer-Prinzip folgt. Im Gegensatz zu einfacheren Algorithmen wie Selection Sort und Bubble Sort, die mehrere Durchgänge durch das Array durchführen und benachbarte Elemente vergleichen, verfolgt Merge Sort einen strategischeren Ansatz:

  1. Teilen: Zuerst teilt Merge Sort das Array in zwei Hälften
  2. Erobern: Zweitens wird jede Hälfte rekursiv sortiert
  3. Kombinieren: Zum Schluss werden die sortierten Hälften wieder zusammengefügt

Dieser Ansatz übertrifft durchweg einfachere O(n²)-Algorithmen wie Selection Sort und Bubble Sort, wenn es um größere Datensätze geht.

So funktionieren Zusammenführungssortierungsalgorithmen

Wir haben gesehen, dass die Zusammenführungssortierung mithilfe des beliebten Divide-and-Conquer-Ansatzes funktioniert. Unten finden Sie eine visuelle Darstellung der Funktionsweise.

Understanding merge sort algorithm: Beginner

Da wir nun die Magie gesehen haben, gehen wir durch die Funktionsweise des Merge-Sort-Algorithmus, indem wir dieses Array manuell sortieren: [38, 27, 43, 3, 9, 82, 10] mit dem oben genannten Ansatz.

Schritt 1: Teilen

Der erste Schritt bei der Zusammenführungssortierung besteht darin, das Array in Unterarrays zu unterteilen und dann jedes Unterarray in Unterarrays und das Unterarray in Unterarrays zu unterteilen, bis in allen Unterarrays nur noch ein Element übrig ist.

Understanding merge sort algorithm: Beginner

Schritt 2: Zurückverschmelzen (Erobern)

Der zweite Schritt besteht darin, mit dem Sortieren dieser Subarrays von Grund auf zu beginnen.

Understanding merge sort algorithm: Beginner

Zeitkomplexität

Merge Sort erreicht in allen Fällen (beste, mittlere und schlechteste) Zeitkomplexität von O(n log n) und ist damit für größere Datensätze effizienter als O(n²)-Algorithmen.

Hier ist der Grund:

  • Dividieren: Das Array wird logarithmisch n-mal geteilt (jede Division halbiert die Größe)
  • Zusammenführen: Jede Zusammenführungsebene erfordert n Operationen
  • Gesamt: n Operationen × log n Ebenen = O(n log n)

Vergleichen Sie dies mit:

  • Blasensortierung: O(n²)
  • Auswahlsortierung: O(n²)
  • Zusammenführungssortierung: O(n log n)

Für ein Array von 1.000 Elementen:

  • O(n²) ≈ 1.000.000 Operationen
  • O(n log n) ≈ 10.000 Operationen

Weltraumkomplexität

Merge Sort erfordert O(n) zusätzlichen Speicherplatz, um die temporären Arrays während des Zusammenführens zu speichern. Dies ist zwar mehr als der von Bubble Sort oder Selection Sort benötigte O(1)-Platz, aber die Zeiteffizienz macht diesen Kompromiss in der Praxis normalerweise lohnenswert.

Implementierung in JavaScript

// The Merge Helper Function
function merge(left, right) {
  const result = [];
  let leftIndex = 0;
  let rightIndex = 0;

  while (leftIndex 

<h4>
  
  
  Aufschlüsselung der Zusammenführungsfunktion:
</h4>

<ol>
<li>
<strong>Funktionseinrichtung</strong>:
</li>
</ol>
<pre class="brush:php;toolbar:false">   const result = [];
   let leftIndex = 0;
   let rightIndex = 0;
  • Erstellt ein leeres Array zum Speichern zusammengeführter Ergebnisse
  • Initialisiert Zeiger für beide Eingabearrays
  • Stellen Sie sich diese Zeiger wie Finger vor, die verfolgen, wo wir uns in jedem Array befinden
  1. Hauptzusammenführungslogik:
   while (leftIndex 


  • Vergleicht Elemente aus beiden Arrays
  • Nimmt das kleinere Element und fügt es dem Ergebnis hinzu
  • Bewegt den Zeiger in dem Array, aus dem wir entnommen haben, vorwärts
  • Als würde man beim Sortieren eines Stapels die kleinere von zwei Karten wählen
  1. Aufräumphase:
   while (leftIndex 


  • Fügt alle verbleibenden Elemente hinzu
  • Notwendig, da ein Array möglicherweise länger ist als das andere
  • Als würde man die restlichen Karten nach dem Vergleich einsammeln

Die Hauptfunktion zum Zusammenführen und Sortieren

function mergeSort(arr) {
  // Base case
  if (arr.length 

<h4>
  
  
  MergeSort aufschlüsseln:
</h4>

<ol>
<li>
<strong>Basisfall</strong>:
</li>
</ol>
<pre class="brush:php;toolbar:false">   if (arr.length 


  • Verarbeitet Arrays der Länge 0 oder 1
  • Diese sind bereits nach Definition sortiert
  • Dient als unser Rekursionsstopppunkt
  1. Teilungsphase:
   const middle = Math.floor(arr.length / 2);
   const left = arr.slice(0, middle);
   const right = arr.slice(middle);
  • Teilt das Array in zwei Hälften
  • Slice() erstellt neue Arrays, ohne das Original zu ändern
  • Als würde man ein Kartenspiel in zwei Hälften schneiden
  1. Rekursives Sortieren und Zusammenführen:
   return merge(mergeSort(left), mergeSort(right));
  • Sortiert jede Hälfte rekursiv
  • Kombiniert sortierte Hälften mithilfe der Zusammenführungsfunktion
  • Zum Beispiel kleinere Kartenstapel zu sortieren, bevor man sie kombiniert

Beispiel-Komplettlösung

Mal sehen, wie es sortiert wird [38, 27, 43, 3]:

  1. Erster Split:
// The Merge Helper Function
function merge(left, right) {
  const result = [];
  let leftIndex = 0;
  let rightIndex = 0;

  while (leftIndex 


<ol>
<li>Zweiter Split:
</li>
</ol>
<pre class="brush:php;toolbar:false">   const result = [];
   let leftIndex = 0;
   let rightIndex = 0;
  1. Zurück zusammenführen:
   while (leftIndex 

<h2>
  
  
  Abschluss
</h2>

<p>Merge Sort zeichnet sich durch einen hocheffizienten Sortieralgorithmus aus, der bei großen Datensätzen stets eine gute Leistung erbringt. Obwohl es im Vergleich zu einfacheren Sortieralgorithmen zusätzlichen Platz benötigt, ist es aufgrund seiner O(n log n)-Zeitkomplexität eine erste Wahl für viele reale Anwendungen, bei denen die Leistung entscheidend ist.</p>

<p>Wichtige Erkenntnisse:</p>

  • Verwendet die Divide-and-Conquer-Strategie
  • O(n log n) Zeitkomplexität in allen Fällen
  • Benötigt O(n) zusätzlichen Platz
  • Stabiler Sortieralgorithmus
  • Hervorragend geeignet für große Datensätze


Bleiben Sie auf dem Laufenden und verbunden

Um sicherzustellen, dass Sie keinen Teil dieser Serie verpassen und um mit mir in Kontakt zu treten, um mehr darüber zu erfahren
Diskussionen über Softwareentwicklung (Web, Server, Mobil oder Scraping/Automatisierung), Daten
Strukturen und Algorithmen und andere spannende Technologiethemen, folgen Sie mir auf:

Understanding merge sort algorithm: Beginner

Emmanuel Ayinde

Softwareentwickler | Technischer Redakteur | Backend-, Web- und Mobilentwickler? | Leidenschaft für die Entwicklung effizienter und skalierbarer Softwarelösungen. #letsconnect ?
  • GitHub
  • Linkedin
  • X (Twitter)

Bleiben Sie dran und viel Spaß beim Programmieren ?‍??

Das obige ist der detaillierte Inhalt vonMerge-Sortieralgorithmus verstehen: Anfängerleitfaden zur Beherrschung des Sortieralgorithmus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Ersetzen Sie Stringzeichen in JavaScriptErsetzen Sie Stringzeichen in JavaScriptMar 11, 2025 am 12:07 AM

Detaillierte Erläuterung der Methode für JavaScript -Zeichenfolge und FAQ In diesem Artikel werden zwei Möglichkeiten untersucht, wie String -Zeichen in JavaScript ersetzt werden: Interner JavaScript -Code und interne HTML für Webseiten. Ersetzen Sie die Zeichenfolge im JavaScript -Code Die direkteste Möglichkeit ist die Verwendung der Ersatz () -Methode: str = str.replace ("find", "ersetzen"); Diese Methode ersetzt nur die erste Übereinstimmung. Um alle Übereinstimmungen zu ersetzen, verwenden Sie einen regulären Ausdruck und fügen Sie das globale Flag G hinzu:: STR = Str.Replace (/fi

Benutzerdefinierte Google -Search -API -Setup -TutorialBenutzerdefinierte Google -Search -API -Setup -TutorialMar 04, 2025 am 01:06 AM

Dieses Tutorial zeigt Ihnen, wie Sie eine benutzerdefinierte Google -Such -API in Ihr Blog oder Ihre Website integrieren und ein raffinierteres Sucherlebnis bieten als Standard -WordPress -Themen -Suchfunktionen. Es ist überraschend einfach! Sie können die Suche auf y beschränken

Erstellen Sie Ihre eigenen AJAX -WebanwendungenErstellen Sie Ihre eigenen AJAX -WebanwendungenMar 09, 2025 am 12:11 AM

Hier sind Sie also bereit, alles über dieses Ding namens Ajax zu lernen. Aber was genau ist das? Der Begriff AJAX bezieht sich auf eine lose Gruppierung von Technologien, mit denen dynamische, interaktive Webinhalte erstellt werden. Der Begriff Ajax, ursprünglich von Jesse J geprägt

Beispielfarben JSON -DateiBeispielfarben JSON -DateiMar 03, 2025 am 12:35 AM

Diese Artikelserie wurde Mitte 2017 mit aktuellen Informationen und neuen Beispielen umgeschrieben. In diesem JSON -Beispiel werden wir uns ansehen, wie wir einfache Werte in einer Datei mit JSON -Format speichern können. Mit der Notation des Schlüsselwertpaares können wir jede Art speichern

10 JQuery Syntax Highlighters10 JQuery Syntax HighlightersMar 02, 2025 am 12:32 AM

Verbessern Sie Ihre Codepräsentation: 10 Syntax -Hochlichter für Entwickler Das Teilen von Code -Snippets auf Ihrer Website oder Ihrem Blog ist eine gängige Praxis für Entwickler. Die Auswahl des richtigen Syntax -Highlighter kann die Lesbarkeit und die visuelle Anziehungskraft erheblich verbessern. T

8 atemberaubende JQuery -Seiten -Layout -Plugins8 atemberaubende JQuery -Seiten -Layout -PluginsMar 06, 2025 am 12:48 AM

Nutzen Sie JQuery für mühelose Webseiten -Layouts: 8 Essential Plugins JQuery vereinfacht das Webseitenlayout erheblich. In diesem Artikel werden acht leistungsstarke JQuery -Plugins hervorgehoben, die den Prozess optimieren, insbesondere nützlich für die manuelle Website -Erstellung

10 JavaScript & JQuery MVC -Tutorials10 JavaScript & JQuery MVC -TutorialsMar 02, 2025 am 01:16 AM

Dieser Artikel enthält eine kuratierte Auswahl von über 10 Tutorials zu JavaScript- und JQuery Model-View-Controller-Frameworks (MVC). Diese Tutorials decken eine Reihe von Themen von Foundatio ab

Was ist ' this ' in JavaScript?Was ist ' this ' in JavaScript?Mar 04, 2025 am 01:15 AM

Kernpunkte Dies in JavaScript bezieht sich normalerweise auf ein Objekt, das die Methode "besitzt", aber es hängt davon ab, wie die Funktion aufgerufen wird. Wenn es kein aktuelles Objekt gibt, bezieht sich dies auf das globale Objekt. In einem Webbrowser wird es durch Fenster dargestellt. Wenn Sie eine Funktion aufrufen, wird das globale Objekt beibehalten. Sie können den Kontext mithilfe von Methoden wie CALL (), Apply () und Bind () ändern. Diese Methoden rufen die Funktion mit dem angegebenen Wert und den Parametern auf. JavaScript ist eine hervorragende Programmiersprache. Vor ein paar Jahren war dieser Satz

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Sicherer Prüfungsbrowser

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.

DVWA

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

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version