📘 Fiche de cours
L'essentiel du cours
Les algorithmes de tri permettent d'ordonner une liste d'éléments. La complexité est mesurée en fonction de la taille $n$ de la liste :
- Tri par sélection : $O(n^2)$. Recherche du minimum et échange.
- Tri par insertion : $O(n^2)$ (pire cas), $O(n)$ (meilleur cas). Efficace pour les petites listes.
- Tri fusion : $O(n \log n)$. Diviser pour régner, stable mais nécessite de la mémoire supplémentaire.
- Tri rapide (QuickSort) : $O(n \log n)$ en moyenne, $O(n^2)$ au pire cas. Très rapide en pratique.
- Recherche séquentielle : $O(n)$. Parcours linéaire.
- Recherche dichotomique : $O(\log n)$. Nécessite une liste triée.
Méthodes à maîtriser
- Analyse de complexité : Compter le nombre d'opérations élémentaires (comparaisons/affectations).
- Exécution manuelle : Être capable de dérouler un tri (ex: état de la liste après chaque itération).
- Choix de l'algorithme : Savoir quand utiliser la dichotomie (liste triée) vs séquentielle.
Exemples corrigés
Exemple Tri par insertion : Pour [5, 2, 9], on prend 2, on le compare à 5, on décale 5, on insère 2 : [2, 5, 9].
Exemple Dichotomie : Chercher 7 dans [1, 3, 5, 7, 9]. Milieu = 5. $7 > 5$, on cherche dans [7, 9]. Milieu = 7. Trouvé.
Erreurs fréquentes
- Oublier que la dichotomie ne fonctionne que sur des listes déjà triées.
- Confondre la complexité au pire cas et au meilleur cas.
- Ne pas gérer correctement les indices (débordement
IndexError) lors des boucles.