Heim > Web-Frontend > js-Tutorial > Hauptteil

Kann eine instabile JavaScript-Sortierung stabil werden?

Mary-Kate Olsen
Freigeben: 2024-10-18 20:43:03
Original
540 Leute haben es durchsucht

Can a Non-Stable JavaScript Sort Become Stable?

Stabiles Sortieren in JavaScript mit einem Twist

Das Sortieren einer Sammlung von Objekten ist eine häufige Aufgabe in der Programmierung, die oft Stabilität erfordert, um das Original zu bewahren Reihenfolge gleicher Elemente. Dem verwendeten Sortieralgorithmus ist jedoch möglicherweise keine Stabilität inhärent.

Einführung einer stabilen, nicht stabilen Sortierung

Ein überraschender, aber effektiver Ansatz besteht darin, eine instabile Sortierung umzuwandeln Funktion in eine stabile Funktion umwandeln. Vor dem Sortieren werden die Positionen aller Elemente ermittelt. Die Sortierbedingung wird geändert, um sowohl den Primärschlüssel als auch die ursprüngliche Position des Elements als Sekundärschlüssel zu berücksichtigen.

Durch die Verwendung der Position als Tiebreaker im Vergleich wird die Stabilität des endgültigen Sortierergebnisses sichergestellt.

Implementierung in JavaScript

Der folgende Codeausschnitt stellt eine Beispielimplementierung in JavaScript dar:

<code class="javascript">function stableSort(array, key) {
  const positions = [];

  for (let i = 0; i < array.length; i++) {
    positions[i] = i;
  }

  array.sort((a, b) => {
    const keyComparison = a[key].localeCompare(b[key]);
    return keyComparison || positions[a] - positions[b];
  });
}</code>
Nach dem Login kopieren

In diesem Code sortiert die Funktion „stableSort“ das Array nach dem angegebenen Wert Schlüssel auf stabile Weise. Das Positions-Array erfasst die Anfangspositionen der Elemente. Die Sortierbedingung basiert auf „localeCompare“ für Zeichenfolgenvergleiche und greift als Tiebreaker auf den Positionsvergleich zurück.

Dieser Ansatz bietet die Flexibilität, jeden instabilen Sortieralgorithmus zu nutzen und gleichzeitig die Stabilität für gleiche Elemente aufrechtzuerhalten.

Das obige ist der detaillierte Inhalt vonKann eine instabile JavaScript-Sortierung stabil werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage