Tri spaghetti

Page d’aide sur l’homonymie

Pour les articles homonymes, voir Spaghetti (homonymie).

Diagramme shématique du tri spaghetti. Le spaghetti peut être trié en les enlevant du paquet sur la table, dans l'ordre de sortie du paquet.

Le Tri spaghetti est un algorithme analogue en temps linéaire inventé par A. K. Dewdney[1],[2] dans sa chronique du Scientific American pour trier une liste. Cet algorithme trie une séquence d'objet en O(n) de manière stable. Il requiert un processeur parallèle.

Algorithme

Par souci de simplicité, nous nous limitons aux entiers naturel. La méthode est illustrée avec des spaghetti non cuits :

  1. Pour chaque nombre x de la liste, obtenez un spaghetti de longueur x.
  2. Après avoir eu tous les spaghettis, posez les sur la table en les mettant debout. Mettez votre main en haut de manière à ne plus voir aucun spaghettis, puis descendez votre main. À chaque spaghetti que vous voyez apparaître, vous avez trouvé le plus grand élément des éléments restants et vous pouvez donc le poser sur la table. Répétez l'opération jusqu'à ne plus avoir de spaghettis.

Notes et références

  1. Alexander Dewdney, On the spaghetti computer and other analog gadgets for problem solving, Scientific American, vol. 250 no. 6, pages 19-26
  2. Andrew Adamatzky, From Utopian to Genuine Unconventional Computers, Luniver Press, page 96, (ISBN 0-9551170-9-7)
v · m
Algorithmes de tri
Tris par comparaisons
Sans hypothèse autre
Complexité moyenne O ( n log n ) {\displaystyle {\mathcal {O}}(n\log n)}
  • Tri rapide
  • Tri fusion
  • Tri par tas
  • Introsort
  • Smoothsort
  • Timsort
  • Tri arborescent
  • Tri à peigne (?)
  • Tri de Shell (?)
Complexité moyenne O ( n 2 ) {\displaystyle {\mathcal {O}}(n^{2})}
Complexité moyenne moins bonne que O ( n 2 ) {\displaystyle {\mathcal {O}}(n^{2})}
Avec hypothèse supplémentaire
Réseau de tri
Tri utilisant d'autres opérations
Applications
  • icône décorative Portail des mathématiques