3
Définition 4.3. Un arbre est un graphe acyclique connexe dans lequel on distingue un sommet en parti-
culier que l’on appelle racine. Les sommets de degré 1 autres que la racine sont appelés feuilles de l’arbre.
Un arbre est tacitement un graphe orienté dont les arêtes sont orientés en s’éloignant de la racine. Deux
sommets appartenant à une même arête ont un ordre, celui du côté de la racine est appelé le père, celui
du côté des feuilles est appelé le fils. Un arbre binaire est un arbre dans lequel chaque sommet est père
d’au plus 2 fils. On définit les termes suivants
•Le niveau d’un sommet est la “distance de ce sommet” à la racine.
•Le niveau kd’un arbre est l’ensemble des sommets de niveau k
•La hauteur d’un arbre est le niveau maximum
Exemple 4.4. Dans l’arbre suivant, aest la racine. Les feuilles sont g, l, i, j, k. Le sommet dest le père
de get h. Le niveau 2 est composé des sommets {d, e, f}. Cet arbre est de hauteur 4.
Figure 1. Un arbre binaire
Définition 4.5. Un arbre binaire complet est arbre binaire dans lequel tous les niveaux sont saturés (i.e.
on ne peut pas ajouter de sommets) à l’exception, peut-être du dernier niveau.
On vérifie facilement par récurrence la proposition suivante.
Proposition 4.6. i) Au niveau kd’un arbre binaire complet de hauteur > k, il y a 2k-sommets.
ii) Soit Aun arbre binaire complet de hauteur ket à Ssommets. On a
2k≤S≤2k+1 −1
iii) Soit Aun arbre binaire de hauteur kàNfeuilles. Alors ≤N≤2k. Si de plus Aest complet on a
2k−1< N ≤2k
4.4. Complexité minimale d’un algorithme de tri à base de comparaisons. Dans cette partie on
montre que le tri par fusion est en O(nln(n)) et que tout algorithme de tri basée sur des comparaisons est
au mieux en O(nln(n)). En d’autres termes, le tri par fusion est en quelque sorte optimal.
Proposition 4.7. Le tri par fusion nécessite O(nln n)comparaisons pour trier une liste de longueur n.
Démonstration. Pour estimer la complecité du Tpf on supposera pour simplifier que la liste Lest de lon-
gueur n= 2m. Dans l’arbre suivant on écrit Tpf(N)pour dire que l’on applique le Tpf à une liste de
longueur N.
•Au niveau 1 : 2 listes de longueur 2m−1
•Au niveau 2 : 22listes de longueur 2m−2
•Au niveau k : 2klistes de longueur 2m−k
•Au niveau m : 2mlistes de longueur 1
Ensuite, pour remonter du niveau mau niveau m−1, on fusionne 2m−1couples de listes de longueur 1
soit 2m−1comparaisons.
Pour remonter du niveau kau niveau k−1, on fusionne 2kcouples de listes de longueur 2m−ksoit
2k−1(2m−k+1 −1) comparaisons.
Finalement, en tout, on fait
k
X
i=1
2k−1(2m−k+1 −1) =
m
X
k=1
(2m−2k)
=m2m−2m+ 1
=nlog2(n)−n+ 1
Et donc le tri par fusion nécessite O(nln n)comparaisons.