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
Quelle est la complexité temporelle de la recherche de la plus grande valeur dans un tableau non trié de n nombres ?
AO(1)
BO(n log n)
CO(n)
DO(log n)
2.Facile
Qu'est-ce que la mémoïsation ?
AStocker les résultats des appels de fonction pour répondre aux appels répétés depuis la mémoire
BLibérer la mémoire après le retour d'une fonction
CConvertir automatiquement une récursion en boucle équivalente, si bien qu'aucune pile d'appels n'est nécessaire
DÉcrire des commentaires à côté de chaque ligne de code
3.Facile
Quelle notation décrit une borne supérieure de la croissance ?
APetit oméga (little omega)
BGrand O (Big O)
CGrand Thêta (Big Theta)
DGrand Oméga (Big Omega)
4.Moyen
Combien de niveaux comporte la récursion du tri fusion pour un tableau de n éléments ?
AEnviron n / 2
BEnviron log₂ n
CEnviron √n
DEnviron 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 est en O(n log n) dans le pire cas
BLe tri par insertion utilise moins de mémoire que tout autre algorithme de tri sur les grandes entrées
CLes algorithmes récursifs ne peuvent pas traiter les tableaux de moins de 10 éléments
DLe tri par insertion a peu de surcoût et est rapide sur les entrées petites ou presque triées
6.Moyen
Pourquoi la programmation dynamique n'apporte-t-elle aucune accélération réelle au tri fusion ?
ALa programmation dynamique ne fonctionne que sur les problèmes de graphes, pas sur les tableaux
BLe tri fusion n'a pas de structure récursive
CSes sous-problèmes ne se chevauchent pas, il n'y a donc rien à réutiliser
DLe tri fusion est déjà en O(n)
7.Difficile
Quelle est la complexité temporelle de : pour i = 1 à n : pour (j = i ; j ≤ n ; j = j + i) faire un travail O(1) ?
AO(n²)
BO(n √n)
CO(n)
DO(n log n)
8.Difficile
Quelle est la différence entre un problème indécidable et un problème intraitable ?
ALes problèmes indécidables sont dans NP, tandis que les problèmes intraitables sont dans P
BUn problème indécidable n'a aucun algorithme valable pour toutes les entrées ; un problème intraitable en a un, mais il est trop lent
CLes deux signifient que le problème n'a aucun algorithme
DLes problèmes intraitables ne peuvent être résolus par aucun algorithme, tandis que les indécidables demandent seulement un temps exponentiel
Corrigé
1. C · O(n)
2. A · Stocker les résultats des appels de fonction pour répondre aux appels répétés depuis la mémoire
3. B · Grand O (Big O)
4. B · Environ log₂ n
5. D · Le tri par insertion a peu de surcoût et est rapide sur les entrées petites ou presque triées
6. C · Ses sous-problèmes ne se chevauchent pas, il n'y a donc rien à réutiliser
7. D · O(n log n)
8. B · Un problème indécidable n'a aucun algorithme valable pour toutes les entrées ; un problème intraitable en a un, mais il est trop lent
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.