📘 Fiche de cours
L'essentiel du cours
La recherche et le tri sont fondamentaux pour manipuler des données.
- Recherche séquentielle : Parcours complet du tableau. Complexité $O(n)$.
- Recherche dichotomique : Nécessite un tableau trié. On divise l'intervalle de recherche par deux à chaque étape. Complexité $O(\log n)$.
- Tri à bulles : Échange les éléments adjacents s'ils sont mal ordonnés.
- Tri par sélection : Cherche le minimum et l'échange avec la première position non triée.
- Tri par insertion : Insère chaque élément à sa place dans la partie déjà triée.
Méthodes à maîtriser
- Recherche dichotomique : Toujours vérifier si le tableau est trié avant. Calculer le milieu
m = (g + d) // 2. - Tri par sélection : Utiliser deux boucles imbriquées. La boucle externe parcourt le tableau, l'interne cherche le min.
- Échange de valeurs : Utiliser
a, b = b, aen Python pour éviter une variable temporaire.
Exemples corrigés
Exemple de recherche dichotomique :
def recherche_dicho(tab, cible):
g, d = 0, len(tab) - 1
while g <= d:
m = (g + d) // 2
if tab[m] == cible: return m
elif tab[m] < cible: g = m + 1
else: d = m - 1
return -1
Erreurs fréquentes
- Oublier que l'indice commence à 0.
- Confondre
g <= davecg < ddans la boucle dichotomique. - Utiliser la recherche dichotomique sur un tableau non trié.