📘 Fiche de cours
L'essentiel du cours
Les algorithmes de tri permettent d'ordonner une liste $L$ de $n$ éléments.
- Tri par sélection : On cherche le minimum dans $L[i:]$ et on l'échange avec $L[i]$. Complexité : $O(n^2)$.
- Tri par insertion : On insère chaque élément $L[i]$ à sa place dans la partie déjà triée $L[0:i]$. Complexité : $O(n^2)$.
- Tri à bulles : On échange les éléments adjacents s'ils sont mal ordonnés. Complexité : $O(n^2)$.
- Recherche séquentielle : Parcours complet de la liste. Complexité : $O(n)$.
- Recherche dichotomique : Nécessite une liste triée. On divise l'intervalle de recherche par 2 à chaque étape. Complexité : $O(\log n)$.
Méthodes à maîtriser
- Analyse de complexité : Compter le nombre d'opérations élémentaires en fonction de $n$.
- Trace d'exécution : Savoir remplir un tableau d'état des variables à chaque itération.
- Choix de l'algorithme : Utiliser la dichotomie uniquement si la liste est triée.
Exemples corrigés
Exemple de recherche dichotomique : Pour chercher 7 dans [1, 3, 5, 7, 9].
- $g=0, d=4, m=2$. $L[2]=5 < 7$. On cherche à droite.
- $g=3, d=4, m=3$. $L[3]=7$. Trouvé !
Erreurs fréquentes
- Oublier que la recherche dichotomique ne fonctionne que sur une liste triée.
- Confondre l'indice $i$ et la valeur $L[i]$.
- Négliger le cas où l'élément recherché n'existe pas dans la liste.