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 ?

  1. AO(2ⁿ)
  2. BO(nⁿ)
  3. CO(n³)
  4. DO(n!)
2.Facile

Qu'est-ce que la mémoïsation ?

  1. AStocker les résultats des appels de fonction pour répondre aux appels répétés depuis la mémoire
  2. BÉcrire des commentaires à côté de chaque ligne de code
  3. CLibérer la mémoire après le retour d'une fonction
  4. 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 ?

  1. AIl cherche à plusieurs reprises le minimum de la partie non triée et l'échange vers l'avant
  2. BIl divise le tableau en deux moitiés et les fusionne
  3. CIl insère chaque élément dans une partie triée croissante par décalages
  4. 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) ?

  1. AO(1)
  2. BO(n)
  3. CO(n log n)
  4. DO(log n)
5.Moyen

Quelle est la solution de la récurrence T(n) = 2T(n/2) + O(1) ?

  1. AO(n²)
  2. BO(n log n)
  3. CO(n)
  4. 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 ?

  1. AO(2ⁿ)
  2. BO(log n)
  3. CO(n²)
  4. 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 ?

  1. AW est un nombre, donc le temps est exponentiel en le nombre de bits utilisés pour écrire W
  2. BParce que l'algorithme est probabiliste et que son temps d'exécution varie à chaque entrée
  3. CParce qu'il ne fonctionne que pour W = 0
  4. 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 ?

  1. AIl compte les cycles par un parcours en profondeur
  2. BIl vérifie si une arête a un poids négatif
  3. CIl exécute deux fois l'algorithme de Dijkstra et compare les deux résultats de distances
  4. DAprès V − 1 tours, il vérifie si une arête peut encore être relâchée

Corrigé

  1. 1. C · O(n³)
  2. 2. A · Stocker les résultats des appels de fonction pour répondre aux appels répétés depuis la mémoire
  3. 3. A · Il cherche à plusieurs reprises le minimum de la partie non triée et l'échange vers l'avant
  4. 4. D · O(log n)
  5. 5. C · O(n)
  6. 6. D · O(n)
  7. 7. A · W est un nombre, donc le temps est exponentiel en le nombre de bits utilisés pour écrire W
  8. 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.