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
Lequel de ces temps d'exécution est polynomial ?
AO(2ⁿ)
BO(nⁿ)
CO(n³)
DO(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
BÉcrire des commentaires à côté de chaque ligne de code
CLibérer la mémoire après le retour d'une fonction
DConvertir automatiquement une récursion en boucle équivalente, si bien qu'aucune pile d'appels n'est nécessaire
3.Facile
Comment fonctionne le tri par sélection ?
AIl cherche à plusieurs reprises le minimum de la partie non triée et l'échange vers l'avant
BIl divise le tableau en deux moitiés et les fusionne
CIl insère chaque élément dans une partie triée croissante par décalages
DIl échange à plusieurs reprises les éléments voisins mal ordonnés
4.Moyen
Quelle est la solution de la récurrence T(n) = T(n/2) + O(1) ?
AO(1)
BO(n)
CO(n log n)
DO(log n)
5.Moyen
Quelle est la solution de la récurrence T(n) = 2T(n/2) + O(1) ?
AO(n²)
BO(n log n)
CO(n)
DO(log n)
6.Moyen
Une fonction exécute une boucle de n itérations, puis, séparément, une autre boucle de n itérations. Quelle est sa complexité temporelle ?
AO(2ⁿ)
BO(log n)
CO(n²)
DO(n)
7.Difficile
Le problème du sac à dos 0/1 résolu par programmation dynamique prend un temps O(nW). Pourquoi dit-on qu'il est pseudo-polynomial ?
AW est un nombre, donc le temps est exponentiel en le nombre de bits utilisés pour écrire W
BParce que l'algorithme est probabiliste et que son temps d'exécution varie à chaque entrée
CParce qu'il ne fonctionne que pour W = 0
DParce que n est toujours petit
8.Difficile
Comment l'algorithme de Bellman-Ford détecte-t-il un cycle de poids négatif accessible depuis la source ?
AIl compte les cycles par un parcours en profondeur
BIl vérifie si une arête a un poids négatif
CIl exécute deux fois l'algorithme de Dijkstra et compare les deux résultats de distances
DAprès V − 1 tours, il vérifie si une arête peut encore être relâchée
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. A · Il cherche à plusieurs reprises le minimum de la partie non triée et l'échange vers l'avant
4. D · O(log n)
5. C · O(n)
6. D · O(n)
7. A · W est un nombre, donc le temps est exponentiel en le nombre de bits utilisés pour écrire W
8. D · Après V − 1 tours, il vérifie si une arête peut encore être relâchée
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.