Vous avez vu l'année dernière le tri par insertion et le tri par selection et tous les deux avaient une complexité en \(\mathcal{O}\left(n^2\right)\).
A copier dans le cahier.
L'expression "diviser pour régner" en informatique est utilisée pour décrire un algorithme fractionnant un problème, ou des données en éléments plus petits afin de les traiter.
On s’intéresse à la recherche dichotomique dans un tableau trié d’entiers.
Compléter la fonction suivante en respectant la spécification.
Exemples :
>>> dichotomie([15, 16, 18, 19, 23, 24, 28, 29, 31, 33], 28)
True
>>> dichotomie([15, 16, 18, 19, 23, 24, 28, 29, 31, 33], 27)
False
Tests :
Affichage :
Console:
A copier dans le cahier.
Le tri par fusion est un algorithme de tri d'une liste qui fonctionne par récurrence à l'aide du principe de diviser pour régner.
Sa complexité est en \(\mathcal{O}\left(n \log(n)\right)\).
Compléter la fonction fusion(liste1,liste2)
, qui prend comme paramètres deux listes triées et qui renvoie une liste triée composée des éléments des deux autres.
Tests :
Affichage :
Console:
Compléter la fonction tri_par_fusion(liste)
en vous appuyant sur la fonction fusion
(fusion de deux listes triées) de l'exercice précédent.
Tests :
Affichage :
Console:
A faire dans le cahier.
Ce code a permis de générer les 3 images ci-dessous :
Il peut sembler que les courbes soient similiaires mais :
A copier dans le cahier.
Les tris par insertion et par selection sont de complexités quadratiques en \(\mathcal{O}\left(n^2 \right)\).
Le tri par fusion est de complexité linéarithmique en \(\mathcal{O}\left(n \log(n)\right)\).