Developer Toolbox

Tri fusion

Coupe la liste en deux, trie chaque moitié, puis fusionne les deux moitiés triées en une seule liste triée.

  • Ω(n log n)
  • Θ(n log n)
  • O(n log n)
  • O(n)
  • oui
  • non
  • comparaison
  • déplacement
  • à sa place finale
0 / 263 étapes

↓ diviser ↓ fusionner Fusions faites : 0 sur 23

Comparaisons Écritures

Lancez la lecture : les lignes montrent comment le coût grandit

Appuyez sur lecture ou avancez pas à pas.

Espace : lecture ou pause. Flèches gauche et droite : pas à pas. Origine et Fin : sauter.

Essayez : Choisissez peu de valeurs uniques. Entre deux valeurs égales, on prend d'abord celle de la moitié gauche, donc leur ordre est conservé.

Comment ça marche

On coupe la liste encore et encore, jusqu'à obtenir des morceaux d'une seule valeur, déjà triés. Puis on les fusionne deux par deux : on compare les premières valeurs des deux morceaux et on prend la plus petite, encore et encore. La ligne surélevée de l'animation est l'espace en plus utilisé pendant la fusion.

Quand le choisir

Quand il faut une vitesse qui reste bonne même dans le pire cas, et que les valeurs égales doivent garder leur ordre. Python et Java utilisent tous deux une variante du tri fusion. Son défaut est la mémoire en plus dont il a besoin.