Cours & Tutoriels

Analyse des algorithmes

cours et exercices de calcul asymptotique

12 cours

Analyse des algorithmes : Analyse des fonctions récursives

L'analyse des fonctions récursives repose sur l'établissement et la résolution de relations de récurrence. Cas de base : condition d'arrêt de la récursion. Relation de récurrence : exprime \(T(n)\) en fonction de \(T\) pour des entrées plus petites.

Les variantes de boucle

Une variante de boucle (ou fonction de terminaison) est une expression associée à une boucle qui possède les propriétés suivantes : Elle est évaluée à une valeur entière positive ou nulle. Sa valeur décroît strictement à chaque itération de la boucle. Elle fournit une borne inférieure garantissant que la boucle ne peut pas s'exécuter indéfiniment.

MP, PSI et la TSI Analyse des algorithmes Diviser pour régner Algorithmes de tri Exercices java Exercices langage c Exercices python algorithmes de tri tri sélection tri insertion tri bulles tri rapide

Algorithme de tri rapide

Tri rapide Le tri rapide (Quicksort) est un algorithme de tri basé sur le paradigme Diviser pour régner, proposé par C.A.R. Hoare en 1959. C'est l'un des algorithmes de tri les plus utilisés en pratique grâce à ses excellentes performances en moyenne.

Analyse des algorithmes - Opérations élémentaires et modèles de coût

Nous voulons souvent raisonner sur le temps d'exécution d'une manière qui ne dépend que de l'algorithme et de son entrée. Ceci peut être réalisé en choisissant une opération élémentaire, que l'algorithme effectue à plusieurs reprises, et en définissant la complexité temporelle \(T(n)\) comme le nombre de ces opérations que l'algorithme effectue étant donné un jeu de données de longueur n.

MPSI, PCSI et la PTSI MP, PSI et la TSI Analyse des algorithmes Premium Complexité analyse des algorithmes GrandO GrandOmega GrandTheta NotationsAsymptotiques

Analyse d'algorithmes : Notations asymptotiques

Lorsqu'on analyse un algorithme, on cherche à connaître son comportement pour des entrées de grande taille. Au lieu de mesurer le temps exact d'exécution (qui dépend des machines), on utilise des notations asymptotiques qui permettent de donner une estimation générale de la croissance de la fonction de complexité.