Fiche d’exercices de Algorithmes et complexité avec corrigé
Fiche d’exercices de Algorithmes et complexité gratuite et imprimable : 8 exercices, du niveau facile au niveau examen, avec corrigé. Imprimez-la ou enregistrez-la en PDF.
Pour les enseignants : gratuite à imprimer, copier et utiliser en classe. Chaque nouvelle fiche a de nouvelles valeurs et son propre corrigé. Un lien vers ExamProblems sur la page de votre cours est apprécié.
Nom: ____________________ Date: ____________
1.Facile
Qu'est-ce que la mémoïsation ?
ALibérer la mémoire après le retour d'une fonction
BÉcrire des commentaires à côté de chaque ligne de code
CStocker les résultats des appels de fonction pour répondre aux appels répétés depuis la mémoire
DConvertir automatiquement une récursion en boucle équivalente, si bien qu'aucune pile d'appels n'est nécessaire
2.Facile
Quelle est la complexité temporelle du parcours en profondeur d'un graphe stocké sous forme de listes d'adjacence ?
AO(V + E)
BO(E log V)
CO(V²)
DO(V × E)
3.Facile
Quelles sont les trois étapes d'un algorithme « diviser pour régner » ?
ADiviser, régner, combiner
BTrier, chercher, renvoyer
CDeviner, vérifier, recommencer
DLire, calculer, écrire
4.Moyen
Pourquoi la programmation dynamique n'apporte-t-elle aucune accélération réelle au tri fusion ?
ALe tri fusion n'a pas de structure récursive
BSes sous-problèmes ne se chevauchent pas, il n'y a donc rien à réutiliser
CLa programmation dynamique ne fonctionne que sur les problèmes de graphes, pas sur les tableaux
DLe tri fusion est déjà en O(n)
5.Moyen
Quelle est la complexité temporelle de : pour i = 1 à n : pour j = 1 à i : faire un travail O(1) ?
AO(n³)
BO(n)
CO(n²)
DO(n log n)
6.Moyen
Dans le problème de sélection d'activités, quelle règle gloutonne donne toujours un nombre maximal d'activités sans chevauchement ?
AChoisir l'activité qui se termine le plus tôt, puis recommencer avec les activités compatibles
BChoisir l'activité qui commence le plus tôt
CChoisir d'abord l'activité la plus courte
DChoisir d'abord l'activité ayant le moins de chevauchements, puis recommencer avec les activités compatibles
7.Difficile
La multiplication de Karatsuba vérifie T(n) = 3T(n/2) + O(n). Quelle en est la solution ?
AΘ(n log n)
BΘ(n²)
CΘ(n3)
DΘ(nlog₂ 3), soit environ n1,585
8.Difficile
Qu'a établi le théorème de Cook-Levin ?
ATout problème NP peut être résolu en temps exponentiel
BP est différent de NP
CLe problème de l'arrêt est indécidable
DLe problème de satisfiabilité booléenne (SAT) est NP-complet
Corrigé
1. C · Stocker les résultats des appels de fonction pour répondre aux appels répétés depuis la mémoire
2. A · O(V + E)
3. A · Diviser, régner, combiner
4. B · Ses sous-problèmes ne se chevauchent pas, il n'y a donc rien à réutiliser
5. C · O(n²)
6. A · Choisir l'activité qui se termine le plus tôt, puis recommencer avec les activités compatibles
7. D · Θ(nlog₂ 3), soit environ n1,585
8. D · Le problème de satisfiabilité booléenne (SAT) est NP-complet
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.