Heim Web-Frontend Front-End-Fragen und Antworten Beispiele zur Erläuterung einiger häufig verwendeter Sortieralgorithmen in JavaScript

Beispiele zur Erläuterung einiger häufig verwendeter Sortieralgorithmen in JavaScript

Apr 25, 2023 am 09:13 AM

JavaScript ist eine beliebte Programmiersprache, die zum Erstellen von Interaktivität auf Webseiten verwendet wird. Sortieren ist einer der wichtigsten Algorithmen in der Informatik, und auch das Sortieren in JavaScript ist eine Fähigkeit, die beherrscht werden muss. In diesem Artikel stellen wir einige häufig verwendete Sortieralgorithmen in JavaScript vor und zeigen, wie man sie implementiert.

  1. Bubble Sort

Bubble Sort ist ein einfacher und intuitiver Sortieralgorithmus. Seine Grundidee besteht darin, jedes Mal zwei benachbarte Elemente zu vergleichen und ihre Positionen zu tauschen, wenn ihre Reihenfolge falsch ist. Nach jeder Sortierrunde wird das größte Element an das Ende des Arrays verschoben. Dieser Vorgang wird wiederholt, bis das gesamte Array sortiert ist.

Das Folgende ist die JavaScript-Implementierung der Blasensortierung:

function bubbleSort(arr) {
  var len = arr.length;
  for (var i = 0; i < len; i++) {
    for (var j = 0; j < len - i - 1; j++) {
      if (arr[j] > arr[j + 1]) {
        var temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
      }
    }
  }
  return arr;
}
Nach dem Login kopieren

Im obigen Code verwenden wir verschachtelte Schleifen, um benachbarte Elemente der Reihe nach zu vergleichen. Wenn das aktuelle Element größer als das nächste Element ist, tauschen wir ihre Positionen aus. Bei jedem Durchlauf der Schleife wird das größte Element an das Ende des Arrays verschoben. Die zeitliche Komplexität dieses Algorithmus beträgt O(n^2).

  1. Auswahlsortierung

Auswahlsortierung ist ein weiterer einfacher Sortieralgorithmus. Seine Grundidee besteht darin, jedes Mal das kleinste Element im Array auszuwählen und es am Ende des sortierten Arrays zu platzieren. Die zeitliche Komplexität der Auswahlsortierung beträgt ebenfalls O(n^2).

Hier ist die JavaScript-Implementierung der Auswahlsortierung:

function selectionSort(arr) {
  var len = arr.length;
  for (var i = 0; i < len - 1; i++) {
    var minIndex = i;
    for (var j = i + 1; j < len; j++) {
      if (arr[j] < arr[minIndex]) {
        minIndex = j;
      }
    }
    if (minIndex !== i) {
      var temp = arr[i];
      arr[i] = arr[minIndex];
      arr[minIndex] = temp;
    }
  }
  return arr;
}
Nach dem Login kopieren

Im obigen Code verwenden wir zwei verschachtelte Schleifen, um den Mindestwert zu finden und ihn an das Ende des sortierten Arrays zu verschieben.

  1. Einfügungssortierung

Einfügungssortierung ist ein einfacher, aber effizienter Sortieralgorithmus. Seine Grundidee besteht darin, ein zu sortierendes Element in eine bereits sortierte Reihenfolge einzufügen. Bei einer ungeordneten Folge beginnen wir immer mit dem ersten Element, nehmen von links nach rechts ein Element heraus und fügen es dann an der entsprechenden Position der geordneten Folge ein. Bis alle Elemente abgerufen sind, ist der Sortiervorgang abgeschlossen.

Das Folgende ist die JavaScript-Implementierung der Einfügungssortierung:

function insertionSort(arr) {
  var len = arr.length;
  var current, j;
  for (var i = 1; i < len; i++) {
    current = arr[i];
    j = i - 1;
    while (j >= 0 && arr[j] > current) {
      arr[j + 1] = arr[j];
      j--;
    }
    arr[j + 1] = current;
  }
  return arr;
}
Nach dem Login kopieren

Im obigen Code verwenden wir eine While-Schleife, um die sortierten Elemente nach rechts zu verschieben, um Platz für das Einfügen neuer Elemente zu schaffen. Die zeitliche Komplexität dieses Algorithmus beträgt O(n^2).

  1. Schnellsortierung

Schnellsortierung ist ein häufig verwendeter und effizienter Sortieralgorithmus. Die Grundidee besteht darin, eine Basiszahl auszuwählen und alle Zahlen in der Folge mit dieser Basiszahl zu vergleichen. Platzieren Sie die Zahlen, die kleiner als die Basiszahl sind, links von der Basiszahl und die Zahlen, die größer als die Basiszahl sind, rechts von der Basiszahl und verarbeiten Sie dann die linken und rechten Teilsequenzen rekursiv.

Das Folgende ist die JavaScript-Implementierung der Schnellsortierung:

function quickSort(arr) {
  if (arr.length <= 1) return arr;
  var pivotIndex = Math.floor(arr.length / 2);
  var pivot = arr.splice(pivotIndex, 1)[0];
  var left = [];
  var right = [];
  for (var i = 0; i < arr.length; i++) {
    if (arr[i] < pivot) {
      left.push(arr[i]);
    } else {
      right.push(arr[i]);
    }
  }
  return quickSort(left).concat([pivot], quickSort(right));
}
Nach dem Login kopieren

Im obigen Code wählen wir zuerst eine Benchmark-Zahl aus, durchlaufen dann die gesamte Sequenz, fügen die Zahlen, die kleiner als die Benchmark-Zahl sind, in ein Array ein und fügen die Zahlen größer ein als die Benchmark-Nummer in ein Array in ein anderes Array. Schließlich verarbeiten wir die linken und rechten Arrays rekursiv und führen sie mit der Basiszahl zusammen. Die zeitliche Komplexität dieses Algorithmus beträgt O(nlogn).

Zusammenfassung

In diesem Artikel werden mehrere gängige Sortieralgorithmen und deren Implementierung in JavaScript vorgestellt. Ob Blasensortierung, Auswahlsortierung oder Einfügungssortierung, es handelt sich bei allen um sehr einfache und leicht verständliche Sortieralgorithmen, die für Anfänger zum Erlernen und Verstehen geeignet sind. Wenn Sie sich eingehender und umfassender mit Sortieralgorithmen befassen, können Sie auch versuchen, einige erweiterte Sortieralgorithmen zu verwenden, z. B. Zusammenführungssortierung, Heap-Sortierung usw.

Das obige ist der detaillierte Inhalt vonBeispiele zur Erläuterung einiger häufig verwendeter Sortieralgorithmen in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

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

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist Useffizität? Wie verwenden Sie es, um Nebenwirkungen auszuführen? Was ist Useffizität? Wie verwenden Sie es, um Nebenwirkungen auszuführen? Mar 19, 2025 pm 03:58 PM

In dem Artikel wird die Verwendung von UseEffect in React, einen Haken für die Verwaltung von Nebenwirkungen wie Datenabrufen und DOM -Manipulation in funktionellen Komponenten erläutert. Es erklärt die Verwendung, gemeinsame Nebenwirkungen und Reinigung, um Probleme wie Speicherlecks zu verhindern.

Wie funktioniert der React -Versöhnungsalgorithmus? Wie funktioniert der React -Versöhnungsalgorithmus? Mar 18, 2025 pm 01:58 PM

Der Artikel erläutert den Versöhnungsalgorithmus von React, der das DOM effizient aktualisiert, indem virtuelle DOM -Bäume verglichen werden. Es werden Leistungsvorteile, Optimierungstechniken und Auswirkungen auf die Benutzererfahrung erörtert.

Was sind Funktionen höherer Ordnung in JavaScript und wie können sie verwendet werden, um prägnanter und wiederverwendbarer Code zu schreiben? Was sind Funktionen höherer Ordnung in JavaScript und wie können sie verwendet werden, um prägnanter und wiederverwendbarer Code zu schreiben? Mar 18, 2025 pm 01:44 PM

Funktionen höherer Ordnung in JavaScript verbessern die Übersichtlichkeit, Wiederverwendbarkeit, Modularität und Leistung von Code durch Abstraktion, gemeinsame Muster und Optimierungstechniken.

Wie funktioniert das Currying in JavaScript und wie hoch sind ihre Vorteile? Wie funktioniert das Currying in JavaScript und wie hoch sind ihre Vorteile? Mar 18, 2025 pm 01:45 PM

In dem Artikel wird das Currying in JavaScript, einer Technik, die Multi-Argument-Funktionen in Einzelargument-Funktionssequenzen verwandelt. Es untersucht die Implementierung von Currying, Vorteile wie teilweise Anwendungen und praktische Verwendungen, Verbesserung des Code -Lesens

Wie verbinden Sie React -Komponenten mit Connect () an den Redux -Store? Wie verbinden Sie React -Komponenten mit Connect () an den Redux -Store? Mar 21, 2025 pm 06:23 PM

In Artikel werden die Verbindungskomponenten an Redux Store mit Connect () verbinden, wobei MapStatetoprops, MapDispatchtoprops und Leistungsauswirkungen erläutert werden.

Was ist usecontext? Wie verwenden Sie es, um den Zustand zwischen Komponenten zu teilen? Was ist usecontext? Wie verwenden Sie es, um den Zustand zwischen Komponenten zu teilen? Mar 19, 2025 pm 03:59 PM

Der Artikel erläutert den Usecontext in React, was das staatliche Management durch Vermeidung von Prop -Bohrungen vereinfacht. Es wird von Vorteilen wie zentraler Staat und Leistungsverbesserungen durch reduzierte Neulehre erörtert.

Wie verhindern Sie das Standardverhalten bei Ereignishandlern? Wie verhindern Sie das Standardverhalten bei Ereignishandlern? Mar 19, 2025 pm 04:10 PM

In Artikeln werden das Standardverhalten bei Ereignishandlern mithilfe von PURDDEFAULT () -Methoden, seinen Vorteilen wie verbesserten Benutzererfahrungen und potenziellen Problemen wie Barrierefreiheitsproblemen verhindern.

Wie implementieren Sie benutzerdefinierte Hooks in React? Wie implementieren Sie benutzerdefinierte Hooks in React? Mar 18, 2025 pm 02:00 PM

In dem Artikel wird in der Implementierung benutzerdefinierter Hooks in React erörtert, wobei der Schwerpunkt auf deren Erstellung, Best Practices, Leistungsvorteilen und gemeinsamen Fallstricks zu vermeiden ist.

See all articles