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 ?
AConvertir automatiquement une récursion en boucle équivalente, si bien qu'aucune pile d'appels n'est nécessaire
BLibérer la mémoire après le retour d'une fonction
CÉcrire des commentaires à côté de chaque ligne de code
DStocker les résultats des appels de fonction pour répondre aux appels répétés depuis la mémoire
2.Facile
Qu'est-ce qu'un algorithme ?
ATout programme informatique doté d'une interface graphique
BUne structure de données qui stocke des nombres
CUn langage de programmation conçu pour écrire des formules mathématiques
DUne suite finie d'étapes bien définies qui résout un problème
3.Facile
Quelle est la complexité temporelle du parcours en profondeur d'un graphe stocké sous forme de listes d'adjacence ?
AO(V²)
BO(E log V)
CO(V × E)
DO(V + E)
4.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 log n)
DO(n³)
5.Moyen
Pourquoi de nombreuses routines de tri des bibliothèques passent-elles au tri par insertion pour les très petits sous-tableaux ?
ALe tri par insertion utilise moins de mémoire que tout autre algorithme de tri sur les grandes entrées
BLe tri par insertion a peu de surcoût et est rapide sur les entrées petites ou presque triées
CLes algorithmes récursifs ne peuvent pas traiter les tableaux de moins de 10 éléments
DLe tri par insertion est en O(n log n) dans le pire cas
6.Moyen
Quelle est la complexité temporelle de : pour i = 1 à n : (j = 1 ; tant que j < n : j = j × 2) ?
AO(n²)
BO(log n)
CO(n log n)
DO(n)
7.Difficile
Que se passerait-il si quelqu'un trouvait un algorithme en temps polynomial pour un problème NP-complet ?
ATous les algorithmes en temps exponentiel s'exécuteraient immédiatement en temps linéaire
BLe problème de l'arrêt deviendrait décidable
CSeul ce problème passerait dans P
DTout problème de NP pourrait être résolu en temps polynomial, donc P = NP
8.Difficile
Quel est le temps d'exécution de l'algorithme de Dijkstra avec un tas binaire sur un graphe à V sommets et E arêtes ?
AO(V + E)
BO(V³)
CO(V × E)
DO((V + E) log V)
Corrigé
1. D · Stocker les résultats des appels de fonction pour répondre aux appels répétés depuis la mémoire
2. D · Une suite finie d'étapes bien définies qui résout un problème
3. D · O(V + E)
4. A · O(n²)
5. B · Le tri par insertion a peu de surcoût et est rapide sur les entrées petites ou presque triées
6. C · O(n log n)
7. D · Tout problème de NP pourrait être résolu en temps polynomial, donc P = NP
8. D · O((V + E) log V)
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.