Vous êtes sur la page 1sur 11

RAPPORT DE L’EXPOSE D’ALGORITHME AVANCE

THEME : TRI PAR FUSION


 

Filière : Prépa sigma 2B ISEN

 Rédiger et présenter par les étudiants :


 DOOH DOOH Jeff Williams
 TAKOUANG DETIO Frantz Berthold
 
 NINFO Nidelle
1  
Examinateur
M. LEUMASSI Audrey

Année Académique : 2021-2022


 
SOMMAIRE
ETUDE DE L’ALGORITHME

ALGORITHME

INTRODUCTION CONCLUSION
COMPLEXITE DU TRI PAR FUSION

IMPLEMENTATION PYTHON
2
INTRODUCTION
Inventer par john von Neuman en 1945 le tri fusion,ou tri dichotomique, est
un algorithme de tri par comparaison stable. Ce tri est basé sur la technique
algorithmique diviser pour régner. L'opération principale de l'algorithme est
la fusion, qui consiste à réunir deux listes triées en une seule. L'efficacité de
l'algorithme vient du fait que deux listes triées peuvent être fusionnées en
temps linéaire.

3
II ETUDE DE L'ALGORITHME
4 A PRICIPE DE L'ALGORITME DE TRI PAR FUSION
En utilisant la technique Diviser pour régner, nous divisons un problème en sous-problèmes. Lorsque la
solution à chaque sous-problème est prête, nous «combinons» les résultats des sous-problèmes pour résoudre le
problème principal.
Supposons que nous devions trier un tableau T. Un sous-problème serait de trier une sous-section (sous-
tableau) de ce tableau commençant à l'indice debut et se terminant à l'indice fin, notée T[debut..fin].
Un algorithme typique de Diviser pour régner résout un problème en utilisant les trois étapes suivantes :
Diviser
Si milieu est le point milieu entre debut et fin, alors nous pouvons diviser le sous-tableau T[debut..fin] en deux
tableaux T[debut..milieu] et T[milieu + 1, fin].
Régner/Résoudre
Dans l'étape Régner, nous essayons de trier les sous-réseaux T[debut..milieu] et T[milieu + 1, fin]. Si nous
n'avons pas encore atteint le cas de base (le sous-tableau contient un seul élément), nous divisons à nouveau ces
deux sous-réseaux et essayons de les trier.
Combiner
Lorsque l'étape de conquête atteint l'étape de base et que nous obtenons deux sous-tableaux triés T[debut..milieu]
et T[milieu + 1, fin] pour le tableau T[debut..milieu], nous combinons les résultats en créant un tableau trié
T[debut..milieu] à partir de deux sous-réseaux triés T[debut..milieu] et T[milieu + 1, fin].
5
EXEMPLE ILLUSTRATIF
III ALGORITHMES
6
La fonction tri Fusion divise à plusieurs reprises le tableau en deux moitiés (deux sous-tableaux) jusqu'à ce que nous
atteignions un stade où nous essayons d'effectuer tri Fusion sur un sous-tableau de taille 1, c'est-à-dire debut == fin.
Après cela, la fonction de fusion entre en jeu et combine les tableaux triés dans un tableau plus grand jusqu'à ce que
l'ensemble du tableau soit fusionné.
EXEMPLE 1
1 fonction triFusion(T, debut, fin):
2 Si debut > fin alors
3 retourne
4
5 # Trouvez le point milieu pour diviser le tableau en deux moitiés
6 milieu = (debut+fin)/2
7
8 # Appelez tri Fusion pour la première moitié du tableau:
9 tri Fusion(T, debut, milieu)
10
11 # Appelez tri Fusion pour la deuxième moitié du tableau:
12 tri Fusion(T, milieu+1, fin)
13
14 # Fusionnez les deux moitiés triées
15 fusion(T, debut, fin, milieu)
EXEMPLE 2
7
tri fusion (tableau) :
Si la longueur est > 1:
# séparer
milieu = longueur // 2
gauche = tableau [0 ... milieu - 1]
droite = tableau [milieu ... fin]
 
# diviser
tri fusion(gauche)
tri fusion(droite)
 
# combiner
fusion(tableau, gauche, droite)

 
Comme les algorithmes ci-dessus, l'algorithme de tri par fusion divise récursivement le tableau en deux
jusqu'à ce que nous atteignions le cas de base d'un tableau avec un élément. Après cela, la fonction de fusion
récupère les sous-tableaux triés et les fusionne pour trier progressivement l'ensemble du tableau. Comme nous
pouvez le voir, la fonction la plus importante dans le tri par fusion est la fusion de fonctions.
IV COMPLEXITE DU TRIE PAR FUSION
8  
Le tri par fusion est un algorithme récursif et la complexité temporelle peut être
exprimée comme une relation de récurrence.

T(n) = 2T(n/2) + O(n)


 
La récurrence ci-dessus peut être résolue en utilisant la méthode de l'arbre de
récurrence ou la théorème principale (Master theorem). la solution de la récurrence
est
 
T(n) = O(nlogn)
 
La complexité temporelle du tri par fusion est T(n) = O(nlogn) dans les 3 cas (pire,
moyen et meilleur) car le tri par fusion divise toujours le tableau en deux moitiés et
prend un temps linéaire pour fusionner deux moitiés.
V IMPLEMENTATION PHYTON
9
 
10 CONCLUSION
11

MERCI POUR
VOTRE AIMABLE
ATTENTION

Vous aimerez peut-être aussi