Tri Fusion

Principe

Dans une première phase « Découpe » :

  1. Découper le tableau en 2 sous-tableaux égaux (à  1 case près)
  2. Découper chaque sous-tableau en 2 sous-tableaux égaux
  3. Ainsi de suite, jusqu'à   obtenir des sous-tableaux de taille 1

Dans une 2ème phase « Tri/fusion » :

  1. Fusionner les sous-tableaux 2 à  2 de façon à  obtenir des sous-tableaux de taille 2 triés
  2. Fusionner les sous-tableaux 2 à  2 de façon à  obtenir des sous-tableaux de taille 4 triés
  3. Ainsi de suite, jusqu'à   obtenir le tableau entier
Cette méthode est récursive et nécessite l'utilisation d'un tableau secondaire de même taille que le tableau à  trier.

Algorithme

TriFusion (Tableau, IMin, IMax)

et pour la fusion de 2 sous-tableaux :

FusionTableau(Tableau, IMin, IMed, IMax)

Exemple

Tableau à  trier : [7,5,1,9,2]

1 2 3 4 5   1 2 3 4 5   La phase de découpe en sous-tableaux n'est pas figurée ici
Tableau à  trier Tableau secondaire
7 5 1 9 2          
7 5 1 9 2 5 7 1 9 2 Tri/Fusion 2 à  2
1 5 7 9 2 5 7 1 9 2 Tri/Fusion 4 à  4 (détaillé ci-dessous)
1 5 7 9 2 1 2 5 7 9 Tri/Fusion 8 à  8
1 2 5 7 9 1 2 5 7 9 Recopie dans le tableau initial
Détail du Tri/Fusion de 2 sous-tableaux
            5 7 1 9     La cellule en gras de chaque sous-tableau indique la position dans le sous-tableau.
1         5 7 1 9  
1 5       5 7 1 9  
1 5 7     5 7 1 9  
1 5 7 9   5 7 1 9  

Exemple de programme en Visual Basic

Remarques

Utilisation

Ce tri est assez performant; ses performances sont relativement indépendantes de la répartition initiale des valeurs.
Son gros inconvénient est de nécessiter un doublement du tableau à  trier (espace mémoire).

Il est bien adapté au tri de fichiers volumineux (qu'on découpe en sous-fichiers).

Retour à  la table des matières des tris


Dernière mise à jour de cette page : 12/8/2007