NSI · premiere spe
Chapitre 7 — Algorithmique
L'essentiel en 30 secondes
L'algorithmique, c'est savoir résoudre un problème EFFICACEMENT. La complexité mesure le coût d'un algorithme (en temps ou en espace). Les tris par sélection et par insertion sont en . La recherche dichotomique est en mais nécessite un tableau TRIÉ. L'algorithme des plus proches voisins (kNN) classe un élément selon ses voisins les plus proches.
Notions clés
- Complexité temporelle
- Estimation du nombre d'opérations en fonction de la taille n des données. Notée O(…) : le pire cas.
- Tri par sélection
- chaque étape, on cherche le minimum du non trié et on le place au bon endroit. .
- Tri par insertion
- On insère chaque élément sa place dans la partie déjà triée (comme un jeu de cartes). .
- Recherche dichotomique
- Diviser par 2 l'espace de recherche à chaque étape. Requiert un tableau trié. O(log n).
- k plus proches voisins (kNN)
- Algorithme de classification : on attribue à un élément la classe majoritaire parmi ses k voisins les plus proches.
- Invariant de boucle
- Propriété vraie avant et après chaque itération d'une boucle. Sert à prouver la correction d'un algorithme.
Formules
Tri par sélection
Condition : Complexité dans tous les cas. Tri en place.
Tri par insertion
Condition : au pire cas, si tableau presque trié. Tri en place, stable.
Recherche dichotomique
Condition : Complexité O(log n). Le tableau DOIT être trié au préalable.
Complexités à connaître
Condition : Du plus efficace au moins efficace. n log n = tri optimal (Python sorted).
A retenir
- La recherche dichotomique ne fonctionne QUE sur un tableau trié. C'est la condition à vérifier en premier.
- Tri par sélection toujours . Tri par insertion au meilleur cas (tableau déjà trié) avantage insertion.
- Pour kNN, le choix de k et de la distance influencent fortement le résultat. k impair évite les égalités.
Erreurs classiques
Erreur : Appliquer la recherche dichotomique sur un tableau non trié
Correction : Vérifier TOUJOURS que le tableau est trié avant d'utiliser la dichotomie. Sinon, le résultat est faux.
Erreur : Erreur de borne dans la dichotomie : utiliser g < d au lieu de g <= d
Correction : La condition est g <= d (avec <=). Sinon, on peut rater l'élément quand g == d.
Erreur : Confondre complexité et : croire qu'une double boucle est en
Correction : Deux boucles imbriquées de taille . Compte le nombre total d'opérations.
Astuce méthode
Pour déterminer la complexité : compte le nombre de boucles imbriquées. boucle de boucles imbriquées de boucle qui divise par .