Tri arborescent

Tri arborescent

Le tri arborescent est un algorithme de tri par comparaison qui utilise la structure d'arbre binaire de recherche. Il est équivalent au tri rapide, en particulier, sa complexité moyenne est Θ(n log n) en moyenne mais Θ(n2) dans le pire cas. Cependant, il est moins efficace car il nécessite de construire une structure de données complexe alors que le tri rapide est un tri en place. Il n'est donc pas utilisé en pratique.

Exemple

Soit à classer par ordre alphabétique ou numérique une série d'éléments (nombres ou mots), par exemple camion moto voiture bateau train avion fusée.

Une façon très inefficace de les classer serait de comparer chaque élément à tous les autres, ce qui se nomme un tri en N².

Une façon plus rationnelle est de faire usage du fait que lorsqu'une clé est supérieure à une autre, elle est forcément aussi supérieure à toutes celles qui lui étaient inférieures sans qu'il soit besoin de les comparer. C'est le principe même de l'arborescence. Sur des grands ensembles, on peut éviter ainsi quelques dizaines de millions d'opérations qui auraient été inutiles, et ramener un tri de quelques heures à quelques minutes, de quelques minutes à quelques secondes, ou de quelques secondes à un temps qui devient inobservable pour l'utilisateur.

Convenons donc de mettre à gauche d'une clé toutes celles qui lui sont inférieures, et à droite toutes celles qui lui sont supérieures, et ainsi de suite récursivement. Notre arbre des moyens de transport va avoir l'allure suivante :

                        -- camion --
                       |            |
                  -- bateau    --  moto --
                 |             |          |   
               avion         fusée   -- voiture
                                     |
                                   train

Comment afficher maintenant la liste triée que nous cherchions ? En spécifiant l'ordre d'affichage ainsi :

   sub Lister-les-clés (racine)
       si existe sous-arbre-à-gauche alors Lister-les-clés sous-arbre-à-gauche;
       imprimer la clé associée à la racine
       si existe sous-arbre-à-droite alors Lister-les-clés sous-arbre-à-droite;
   fin-sub

On obtient bien :

  • avion
  • bateau
  • camion
  • fusée
  • moto
  • train
  • voiture

Complexité

On démontre que dans le cas d'une entrée en ordre vraiment aléatoire (en particulier autre chose que celui où toutes les clés sont déjà triées à l'exception de quelques-unes), la complexité moyenne de ce tri est en n log n, ce qui est optimal pour un tri par comparaison (voir l'article algorithme de tri)

Une variante consiste à utiliser un arbre équilibré. La complexité de l'algorithme est alors Θ(n log n) dans tous les cas.



Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Tri arborescent de Wikipédia en français (auteurs)

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • Liste Des Algorithmes — Sommaire 1 Liste par catégories 1.1 Compression de données 1.2 Tri 1.2.1 Algorithmes en temps quadratique …   Wikipédia en Français

  • Liste des algorithmes — Sommaire 1 Liste par catégories 1.1 Compression de données 1.2 Tri 1.2.1 Algorithmes en temps quadratique …   Wikipédia en Français

  • Arborescence — En mathématiques, plus précisément dans la théorie des graphes, une arborescence est un arbre comportant un sommet particulier r, nommé racine de l arborescence à partir duquel il existe un chemin unique vers tous les autres sommets[1]. En… …   Wikipédia en Français

  • Arborescence (informatique) — Arborescence Une arborescence permet d organiser les données en mémoire ou sur disque, de manière logique et hiérarchisée. C est un cas pratique d utilisation de la structure algorithmique d arbre. Cette organisation rend plus efficaces la… …   Wikipédia en Français

  • Tour d'Hanoï — Tours de Hanoï Étapes de la résolution du problème avec 4 disques. Le problème des tours de Hanoï est un jeu de réflexion imaginé par le mathématicien français Édouard Lucas, et consistant à déplacer des disques de diamètres différents d une tour …   Wikipédia en Français

  • Tour de Hanoï — Tours de Hanoï Étapes de la résolution du problème avec 4 disques. Le problème des tours de Hanoï est un jeu de réflexion imaginé par le mathématicien français Édouard Lucas, et consistant à déplacer des disques de diamètres différents d une tour …   Wikipédia en Français

  • Tours d'Hanoï — Tours de Hanoï Étapes de la résolution du problème avec 4 disques. Le problème des tours de Hanoï est un jeu de réflexion imaginé par le mathématicien français Édouard Lucas, et consistant à déplacer des disques de diamètres différents d une tour …   Wikipédia en Français

  • Tours de Hanoi — Tours de Hanoï Étapes de la résolution du problème avec 4 disques. Le problème des tours de Hanoï est un jeu de réflexion imaginé par le mathématicien français Édouard Lucas, et consistant à déplacer des disques de diamètres différents d une tour …   Wikipédia en Français

  • Tours de Hanoï — Un modèle d une Tour d Hanoï (avec 8 disques) Étapes de la résolution du problème avec 4 disques. Le problème des tours de Hanoï est un jeu de réflexion imaginé par le mathématicien françai …   Wikipédia en Français

  • Tours de hanoï — Étapes de la résolution du problème avec 4 disques. Le problème des tours de Hanoï est un jeu de réflexion imaginé par le mathématicien français Édouard Lucas, et consistant à déplacer des disques de diamètres différents d une tour de… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”