Maison  >  Article  >  interface Web  >  Comment implémenter un tri stable en JavaScript pour un tri cohérent

Comment implémenter un tri stable en JavaScript pour un tri cohérent

DDD
DDDoriginal
2024-10-18 20:38:30403parcourir

How to Implement Stable Sorting in JavaScript for Consistent Ordering

Tri stable en JavaScript : une approche globale

Les algorithmes de tri sont cruciaux pour organiser les données dans un ordre spécifique. Lorsqu’il s’agit de grands ensembles de données, la sélection d’un algorithme efficace et stable devient essentielle. La stabilité dans les algorithmes de tri fait référence à la préservation de l'ordre d'origine des éléments égaux après le processus de tri.

Énoncé du problème :

Envisagez un scénario dans lequel vous devez trier un tableau d’objets basé sur une clé spécifique, garantissant que l’ordre des résultats reste cohérent et stable. La taille du tableau est d'environ 200 à 300 objets.

Meilleur algorithme et mise en œuvre :

Pour obtenir un tri stable, on peut exploiter une technique unique qui utilise un non -fonction de tri stable. Avant le tri, les positions de tous les éléments sont capturées. Dans la comparaison de tri, si deux éléments sont égaux, leurs positions d'origine sont utilisées comme critères de tri.

<code class="javascript">function stableSort(array, key) {
  // Get the position of each element
  array.forEach((item, index) => {
    item._position = index;
  });

  // Sort using the key and the position as tie-breaker
  array.sort((a, b) => {
    const diff = a[key] - b[key];
    if (diff === 0) {
      return a._position - b._position;
    }
    return diff;
  });

  // Remove the temporary _position property
  array.forEach((item) => {
    delete item._position;
  });
}</code>

Cette technique nous permet d'utiliser n'importe quel algorithme de tri tout en maintenant la stabilité. Pour plus d'informations sur cette approche, vous pouvez vous référer au billet de blog fourni dans la réponse.

En utilisant cette technique de tri stable, vous pouvez trier efficacement votre tableau d'objets, en garantissant que l'ordre des éléments égaux reste cohérent. et stable, même lorsque vous travaillez avec des ensembles de données plus volumineux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn