Maison >interface Web >js tutoriel >10 meilleurs algorithmes de tri expliqués, avec des exemples

10 meilleurs algorithmes de tri expliqués, avec des exemples

William Shakespeare
William Shakespeareoriginal
2025-02-09 08:58:09470parcourir

10 Best Sorting Algorithms Explained, with Examples

Cet article explore les algorithmes de tri approfondis, un outil de base en informatique pour une organisation efficace de données et fournit des informations pratiques grâce à des exemples de codes de divers types d'algorithmes. L'article contient une analyse technique de l'algorithme de tri, en utilisant la grande notation O pour analyser son temps et sa complexité spatiale, et fournit également un aperçu de haut niveau que le public peut comprendre. L'article explore de manière approfondie l'algorithme de tri, discute de son importance, différents types et algorithmes principaux qui doivent être compris, en se concentrant sur les applications pratiques et les comparaisons d'algorithmes.

Points clés

  1. Basiques et praticité: Cet article explore des algorithmes de tri approfondis, un outil incontournable en informatique pour une organisation efficace des données et fournit des informations pratiques grâce à un exemple de code de divers types d'algorithmes.
  2. Analyse technique et accessibilité technique: Il comprend des inspections techniques des algorithmes de tri, analysant sa complexité de temps et d'espace à l'aide d'une grande notation O, et offre également un aperçu de haut niveau pour une compréhension facile.
  3. Couverture complète: Cet article explore de manière approfondie l'algorithme de tri, discute de son importance, différents types et algorithmes principaux qui doivent être compris, en se concentrant sur les applications pratiques et les comparaisons d'algorithmes.

Quel est l'algorithme de tri?

Essentiellement, un algorithme de tri est un programme informatique qui organise des données en ordres spécifiques, tels que l'ordre alphabétique ou numérique, généralement dans l'ordre croissant ou décroissant.

Quel est le but de l'algorithme de tri?

Les algorithmes de tri sont principalement utilisés pour réorganiser de grandes quantités de données de manière efficace pour faciliter la recherche et les manipuler. Ils sont également utilisés pour augmenter l'efficacité d'autres algorithmes tels que la recherche et la fusion qui s'appuient sur des données triées pour fonctionner.

Pourquoi l'algorithme de tri est-il si important?

Les algorithmes de tri sont utilisés pour organiser des données dans un ordre spécifique, ce qui facilite la recherche, l'accès et l'analyse des données. Dans de nombreuses applications, le tri est un élément clé du flux de traitement des données, et l'efficacité de l'algorithme de tri peut avoir un impact significatif sur les performances globales du système.

  • dans la base de données: Le tri est utilisé pour récupérer des enregistrements dans un ordre spécifique, comme par ordre alphabétique ou numérique. Cela permet aux utilisateurs de trouver rapidement les données dont ils ont besoin sans rechercher manuellement de grandes quantités de données non triées.
  • dans les moteurs de recherche: Trier les résultats de recherche dans l'ordre de pertinence. En triant les résultats de cette façon, les utilisateurs peuvent rapidement trouver les informations qu'ils recherchent sans filtrer les résultats non pertinents ou non pertinents.
  • Dans de nombreuses applications scientifiques et techniques: Les chercheurs peuvent exécuter l'analyse et les simulations des données pour obtenir un aperçu des systèmes complexes et faire des prédictions plus précises sur le comportement futur.

différents types dans les structures de données

Une sorte de type est disponible. Le choix des algorithmes de tri dépend d'une variété de facteurs, tels que la taille de l'ensemble de données, le type de données en cours de tri et le temps et la complexité spatiale requis.

Algorithme de tri basé sur la comparaison

Ces algorithmes comparent les éléments de l'ensemble de données et déterminent leur ordre en fonction des résultats de la comparaison. Des exemples d'algorithmes de tri basés sur une comparaison incluent le tri des bulles, le tri des inserts, le tri rapide, le tri de fusion et le tri des tas.

Algorithme de tri non basé sur une comparaison

Ces algorithmes ne comparent pas directement les éléments, mais utilisent d'autres propriétés de l'ensemble de données pour déterminer leur commande. Des exemples d'algorithmes de tri non basés sur une comparaison incluent le tri de comptage, le tri de la cardinalité et le tri du seau.

Algorithme de tri en place

Ces algorithmes trient les ensembles de données en situ, ce qui signifie qu'ils ne nécessitent pas de mémoire supplémentaire pour stocker des résultats intermédiaires. Des exemples d'algorithmes de tri in situ incluent le tri des bulles, le tri des insert, le tri rapide et le tri des collines.

Algorithme de tri stable

Ces algorithmes conservent l'ordre relatif d'éléments tels que l'ensemble de données. Des exemples d'algorithmes de tri stables incluent le tri des insert, le tri de fusion et TimSort.

algorithme de tri adaptatif

Ces algorithmes utilisent tout ordre existant dans l'ensemble de données pour améliorer leur efficacité. Des exemples d'algorithmes de tri adaptatif incluent le tri des insert, le tri des bulles et TimSort.

Algorithmes de tri des dix premiers qui doivent être connus

Maintenant, jetons un coup d'œil aux dix premiers algorithmes de tri auxquels vous devez faire attention lors de la sélection d'un algorithme de tri.

bubblestone

Bubblestone est un algorithme de tri simple qui itère encore et sur la liste des éléments donnée, compare chaque paire d'éléments adjacents et les échange s'ils sont incorrects dans l'ordre. L'algorithme se poursuit jusqu'à ce qu'il traverse la liste entière sans échanger aucun élément. Le tri des bulles est parfois appelé "tri de naufrage".

10 Best Sorting Algorithms Explained, with Examples

Histoire du tri des bulles

L'origine du tri des bulles remonte à la fin des années 1950, et Donald Knut l'a popularisé dans son classique de 1968 The Art of Computer Programming. Depuis lors, il a été largement utilisé dans une variété d'applications, y compris les algorithmes de tri des compilateurs, le tri des éléments dans les bases de données et même le tri des cartes à jouer.

PROS et inconvénients du tri des bulles

Bubblestone est considéré comme un algorithme de tri relativement inefficace car sa complexité moyenne et pire des cas est O (n ^ 2). Cela le rend beaucoup moins efficace que la plupart des autres algorithmes de tri, tels que le tri rapide ou le tri de fusion.

Description technique: O (n ^ 2) La complexité signifie que le temps requis pour que l'algorithme terminé est proportionnel au carré de la taille de l'entrée. Cela signifie qu'une taille d'entrée plus grande entraînera une terminer l'algorithme beaucoup plus longtemps.

Par exemple, si vous considérez un algorithme qui trie un tableau de nombres, cela peut prendre une seconde pour trier un tableau de dix numéros, mais cela peut prendre quatre secondes pour trier un tableau de 20 numéros. En effet, l'algorithme doit comparer chaque élément du tableau avec tous les autres éléments, il doit donc comparer un tableau plus grand 20 fois et un tableau plus petit seulement 10 fois.

Cependant, il est très facile à comprendre et à mettre en œuvre et est souvent utilisé comme introduction au tri et aux blocs de construction pour des algorithmes plus complexes. Mais maintenant, il est rarement utilisé dans la pratique.

Case utilisateur pour le tri des bulles

Bubblestone est un algorithme simple qui peut être utilisé pour trier les listes ou les tableaux de petits éléments. Il est facile à mettre en œuvre et à comprendre, il peut donc être utilisé dans des situations où la simplicité et la clarté sont plus importantes que les performances.

  • Objectif éducatif. Il est souvent utilisé comme exemple d'algorithmes de tri simples dans les cours d'informatique. Les élèves peuvent apprendre les techniques de tri de base et comprendre comment les algorithmes fonctionnent en apprenant le tri des bulles.
  • Trier les petits ensembles de données. Il peut être utilisé pour trier les petits ensembles de données avec jusqu'à quelques centaines d'éléments. Dans les situations où les performances ne sont pas un problème critique, le tri bouillonnant peut être un moyen rapide et facile de trier les petites listes.
  • Données pré-triées. Il peut être utilisé comme étape préliminaire dans des algorithmes de tri plus complexes. Par exemple, si les données ont été partiellement triées, les données peuvent être triées en utilisant le tri des bulles avant d'exécuter un algorithme plus complexe.
  • Trier les données avec des ressources limitées. Il est utile dans les situations où les ressources sont limitées, comme dans les systèmes intégrés ou les microcontrôleurs, car il nécessite très peu de mémoire et de puissance de traitement.
  • Blocs constitutifs pour des algorithmes plus complexes. Il est souvent utilisé avec le tri de fusion ou le tri rapide, ainsi que le tri de petites sous-réseaux à l'aide de tri insert, car ces autres algorithmes peuvent obtenir de meilleures performances sur des ensembles de données plus grands.

Implémentation du tri des bulles

  1. itérer dans le projet à l'aide de boucles imbriquées.
  2. Comparez les éléments adjacents dans la liste.
  3. Si l'ordre du projet est faux, échangez le projet.
  4. Continuez jusqu'à ce que la liste soit triée.
Toi bouillonnant dans Python
<code class="language-python">def bubble_sort(items):
    for i in range(len(items)):
        for j in range(len(items)-1-i):
            if items[j] > items[j+1]:
                items[j], items[j+1] = items[j+1], items[j]
    return items

items = [6,20,8,19,56,23,87,41,49,53]
print(bubble_sort(items))</code>
Tri bouillonnant en javascript
<code class="language-javascript">function bubbleSort(items) {
  let swapped;
  do {
    swapped = false;
    for (let i = 0; i < items.length - 1; i++) {
      if (items[i] > items[i + 1]) {
        let temp = items[i];
        items[i] = items[i + 1];
        items[i + 1] = temp;
        swapped = true;
      }
    }
  } while (swapped);
  return items;
}

let items = [6, 20, 8, 19, 56, 23, 87, 41, 49, 53];
console.log(bubbleSort(items));</code>

(En raison des limitations de l'espace, seul le nom de l'algorithme et la brève description seront conservés. Veuillez vous référer au texte d'origine pour le code complet et l'explication détaillée)

insérer le tri

Le tri des insert est un algorithme simple qui construit un tableau trié final à la fois, et est nommé ainsi en raison de la façon dont les éléments plus petits sont insérés dans la position correcte dans le tableau trié.

10 Best Sorting Algorithms Explained, with Examples

Sort rapide

Le tri rapide est un algorithme de tri divisé et conquis populaire basé sur le principe de division d'un tableau en deux sous-réseaux - l'un contenant un élément plus petit que l'élément "pivot" et l'autre contenant un élément plus grand que l'élément pivot. Triez ensuite récursivement les deux sous-réseaux.

10 Best Sorting Algorithms Explained, with Examples

Trie du seau

Le tri du godet est un algorithme utile pour le tri des données réparties uniformément, qui peuvent être facilement parallélisées pour améliorer les performances.

10 Best Sorting Algorithms Explained, with Examples

HILL SORT

HILL SOT utilise l'algorithme de tri des insert, mais au lieu de trier toute la liste à la fois, il divise la liste en sublilistes plus petits. Ces sublilistes sont ensuite triés à l'aide de l'algorithme de tri Insert, réduisant ainsi le nombre de swaps nécessaires pour trier la liste.

10 Best Sorting Algorithms Explained, with Examples

Fusiter le tri

L'idée de base du tri de fusion est de diviser la liste des entrées en deux moitiés, de trier chaque moitié de la moitié en utilisant le tri de fusion, puis de fusionner les deux moitiés triées ensemble.

10 Best Sorting Algorithms Explained, with Examples

Sélectionnez Sort

Sélectionnez Trier Sélectionnez à plusieurs reprises le plus petit élément dans la partie non triée de la liste et échangez-la avec le premier élément de la partie non triée. Ce processus se poursuit jusqu'à ce que la liste complète soit triée.

10 Best Sorting Algorithms Explained, with Examples

Sort noir

L'idée de base du tri de la cardinalité est de trier les données en regroupant chaque nombre d'un nombre ou d'un caractère, de droite à gauche ou de gauche à droite.

10 Best Sorting Algorithms Explained, with Examples

peigne Sort

Le tri de peigne compare des paires d'éléments qui sont à une certaine distance séparés, et s'ils sont incorrects dans l'ordre, échangez-les.

10 Best Sorting Algorithms Explained, with Examples

Timsort

L'algorithme TimSort fonctionne en divisant les données d'entrée en sous-réseaux plus petits, puis en tri ces sous-réseaux à l'aide du tri d'insertion.

(le code d'implémentation TimSort est omis pour des raisons de longueur)

Comparaison de tous les algorithmes de tri

Veuillez noter que la complexité temporelle et la complexité spatiale répertoriés dans le tableau sont la complexité du pire des cas, et les performances réelles peuvent varier en fonction de la mise en œuvre et des données d'entrée spécifiques.

算法 时间复杂度 空间复杂度 原地排序 稳定排序 自适应排序
冒泡排序 O(n^2) O(1)
快速排序 O(n log n) O(log n)
桶排序 O(n k) O(n k)
希尔排序 O(n log n) O(1)
合并排序 O(n log n) O(n)
选择排序 O(n^2) O(1)
基数排序 O(w·n) O(w n)
梳排序 O(n^2) O(1)
Timsort O(n log n) O(n)

Quel est l'algorithme de tri le plus utilisé?

L'algorithme de tri le plus couramment utilisé peut être un tri rapide. Il est largement utilisé dans de nombreux langages de programmation (y compris C, C, Java et Python), ainsi que dans de nombreuses applications et bibliothèques logicielles. Le tri rapide est favorisé pour son efficacité et sa polyvalence dans la gestion de différents types de données et est souvent utilisé comme algorithme de tri par défaut dans les langages de programmation et les cadres logiciels. Cependant, d'autres algorithmes de tri tels que Merge Sort et TimSort sont également largement utilisés dans diverses applications en raison de leur efficacité et de leurs capacités uniques.

(Le contenu restant, tel que le résumé, la FAQ, etc., a été omis en raison des limitations de l'espace.)

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