Keyboard shortcuts

Touchez ← ou → pour naviguer les chapitres

Touchez S ou / pour chercher dans le livre

Touchez ? pour afficher ce message

Touchez Esc pour masquer ce message

Accueil > Structures de données et algorithmes >

📚 Analyse de la complexitĂ© algorithmique

Survol et attentes

Quelle option préférerez-vous?

  • Faire des allers-retours Ă  vĂ©lo plusieurs fois Ă  l’épicerie avec un seul sac ou une seule fois mais en traĂźnant une grande remorque Ă  vĂ©lo
  • Trouver votre chemin vers la maison d’un nouvel ami en prenant des virages au hasard aux intersections de la route jusqu’à ce que vous arriviez (peut-ĂȘtre des annĂ©es plus tard) ou en prenant le virage qui vous mĂšne dans la direction gĂ©nĂ©rale et en revenant sur vos pas si nĂ©cessaire jusqu’à ce que vous arriviez
Définitions
Analyse algorithmique
DĂ©crire la complexitĂ© des algorithmes - combien de temps ou combien d’espace ils prennent pour accomplir la tĂąche. Certains algorithmes sont beaucoup plus efficaces avec les opĂ©rations ou la mĂ©moire que d’autres. Certains sont tellement inefficaces qu’ils ne sont pas du tout pratiques!
Ordre de grandeur
Nombre d’étapes ou de la quantitĂ© de mĂ©moire requise en fonction de la taille des donnĂ©es Ă  traiter, dĂ©crit selon le terme le plus important dans la relation. L’ordre de grandeur n’est donc pas une relation exacte entre l’effort et le nombre de donnĂ©es Ă  traiter mais donne un portrait de la progression globale de l’effort selon ce nombre.
Notation “grand O”
ReprĂ©sentation de l’ordre de grandeur au format O(f(n)) oĂč f(n) est une fonction qui dĂ©crit la complexitĂ© de l’algorithme en fonction de la taille des donnĂ©es Ă  traiter. Par exemple, O(n) signifie que l’effort est proportionnel Ă  la taille des donnĂ©es, n, tandis que O(nÂČ) signifie que l’effort est proportionnel au carrĂ© de la taille des donnĂ©es.

Objectifs d’apprentissage

À la fin de cette leçon vous devrez ĂȘtre en mesure de :

  • DĂ©finir la complexitĂ© algorithmique, l’efficacitĂ© temporelle, l’efficacitĂ© spatiale et les problĂšmes P/NP
  • DĂ©finir les niveaux de complexitĂ© algorithmique courants dans la notation “grand O” : constant, logarithmique, linĂ©aire, log-linĂ©aire, quadratique et exponentiel
  • Identifier les strutures algorithmiques qui conduisent Ă  une complexitĂ© constante, linĂ©aire, logarithmique, quadratique ou exponentielle

CritĂšres de succĂšs

  • Je peux reconnaĂźtre la complexitĂ© “grand O” d’un algorithme en fonction de son graphique d’opĂ©rations (ou d’utilisation de la mĂ©moire) en fonction de la taille de l’entrĂ©e
  • Je peux identifier la complexitĂ© de la recherche sĂ©quentielle et binaire ainsi que celle de quelques algorithmes de tri courants
  • Je peux analyser un algorithme inconnu pour dĂ©terminer sa complexitĂ© algorithmique en fonction des structures observĂ©es dans l’algorithme

Notes

Exercices

Fiche de travail

© 2022-2025 David Crowley