Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
9.1. Problématique
Dans ce cours, on va se restreindre au tri des éléments d’une liste, mais rien n’empêche
l’application des fonctions de tri qui seront présentées dans la suite aux autres conteneurs
séquentiels. Nous allons supposer que :
Les listes sont homogènes (contenant toutes des éléments de même nature, par
exemple des listes d’entiers uniquement ou de réels uniquement…)
Les éléments de la liste peuvent être ordonnés en utilisant une relation d’ordre par
exemple l’opérateur de comparaison ≤.
Trier une liste c’est ordonner ses éléments par ordre croissant ou décroissant. La liste sera
elle-même une donnée et un résultat. Toutes les modifications opérées lors du processus du
traitement seront enregistrées sur la liste L et pas sur une copie d’elle-même.
Analyse de la complexité :
Pour faciliter le calcul du temps d’exécution, nous allons considérer la version
suivante de triselect :
O(T(n))=O(n²) : L’algorithme du tri est quadratique, pas très pratique quand la taille
des données s’accroit.
Analyse de complexité :
Pour simplifier l’étude on va se baser sur la 2ème version de tribulles :
Algorithme Unités de temps
def tribulles(L): T(n)
n=len(L) 1+n
for i in range(n-1): n-1 boucles
for j in range(n-i-1): n-i-1 boucles
if L[j]>L[j+1]: 3
L[j],L[j+1]=L[j+1],L[j] 6
Exemple :
Implémentation :
Analyse de complexité :
( ) ∑
O(T(n))=O(n²)
Implémentation :
Analyse de complexité :
( ) ( )
n n² nlogn
100 10000 665
1000 1000000 9966
100000 10000000000 1660964
- La fonction du tri :
Analyse de complexité :
D’où :
( ) ( )