Tri par sélection pratique en JavaScript

JavaScriptJavaScriptBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous explorerons l'algorithme de tri par sélection et apprendrons à l'utiliser pour trier un tableau de nombres en JavaScript. Ce laboratoire vise à offrir une expérience pratique du tri par sélection et à vous aider à comprendre comment il fonctionne sous le capot. À la fin de ce laboratoire, vous aurez une compréhension solide du tri par sélection et serez en mesure de l'appliquer pour résoudre des problèmes de tri dans vos futurs projets.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/cond_stmts("Conditional Statements") javascript/BasicConceptsGroup -.-> javascript/loops("Loops") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28609{{"Tri par sélection pratique en JavaScript"}} javascript/data_types -.-> lab-28609{{"Tri par sélection pratique en JavaScript"}} javascript/arith_ops -.-> lab-28609{{"Tri par sélection pratique en JavaScript"}} javascript/comp_ops -.-> lab-28609{{"Tri par sélection pratique en JavaScript"}} javascript/cond_stmts -.-> lab-28609{{"Tri par sélection pratique en JavaScript"}} javascript/loops -.-> lab-28609{{"Tri par sélection pratique en JavaScript"}} javascript/array_methods -.-> lab-28609{{"Tri par sélection pratique en JavaScript"}} javascript/higher_funcs -.-> lab-28609{{"Tri par sélection pratique en JavaScript"}} javascript/spread_rest -.-> lab-28609{{"Tri par sélection pratique en JavaScript"}} end

Algorithme de tri par sélection

Pour commencer à coder, ouvrez le Terminal/SSH et tapez node.

La fonction suivante trie un tableau de nombres en utilisant l'algorithme de tri par sélection :

const selectionSort = (arr) => {
  const a = [...arr];
  for (let i = 0; i < a.length; i++) {
    const min = a
      .slice(i + 1)
      .reduce((acc, val, j) => (val < a[acc] ? j + i + 1 : acc), i);
    if (min !== i) [a[i], a[min]] = [a[min], a[i]];
  }
  return a;
};

Pour utiliser la fonction, passez un tableau de nombres à selectionSort(), comme ceci :

selectionSort([5, 1, 4, 2, 3]); // [1, 2, 3, 4, 5]

La fonction fonctionne en clonant le tableau original à l'aide de l'opérateur de propagation (...). Elle itère ensuite sur le tableau à l'aide d'une boucle for. En utilisant Array.prototype.slice() et Array.prototype.reduce(), elle trouve l'index de l'élément minimum dans le sous-tableau à droite de l'index actuel. Si nécessaire, elle effectue un échange.

Sommaire

Félicitations ! Vous avez terminé le laboratoire sur le tri par sélection. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.