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 dichotomique dans un tableau trié ?

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

Qu'est-ce que le cas de base d'une fonction récursive ?

  1. ALa première ligne de la fonction
  2. BL'appel qui utilise le plus de mémoire
  3. CLe cas avec l'entrée la plus grande, traité avant tout appel récursif
  4. DUn cas traité directement, sans nouvel appel récursif
3.Facile

Quel algorithme de tri choisit un pivot et partitionne le tableau en éléments plus petits et plus grands ?

  1. ALe tri fusion
  2. BLe tri rapide (quicksort)
  3. CLe tri à bulles
  4. DLe tri par insertion
4.Moyen

La complexité temporelle de la version récursive naïve de Fibonacci (fib(n) = fib(n−1) + fib(n−2)) est :

  1. AConstante
  2. BLinéaire
  3. CExponentielle
  4. DLogarithmique
5.Moyen

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

  1. AO(n²)
  2. BO(n)
  3. CO(2ⁿ)
  4. DO(log n)
6.Moyen

Quelle est la complexité temporelle du tri rapide (quicksort) dans le pire cas ?

  1. AO(n log n)
  2. BO(n)
  3. CO(log n)
  4. DO(n²)
7.Difficile

Le tri par insertion s'exécute en O(n) sur une entrée triée. Cela contredit-il la borne inférieure Ω(n log n) des tris par comparaisons ?

  1. AOui, mais seulement pour les tableaux de moins de 100 éléments
  2. BNon, car le tri par insertion n'est pas un tri par comparaisons
  3. CNon, la borne inférieure s'applique au pire cas sur toutes les entrées, pas à chaque entrée
  4. DOui, la borne inférieure est donc fausse
8.Difficile

Quelle est la complexité temporelle de : pour i = 1 à n : pour (j = i ; j ≤ n ; j = j + i) faire un travail O(1) ?

  1. AO(n √n)
  2. BO(n²)
  3. CO(n log n)
  4. DO(n)

Corrigé

  1. 1. B · O(log n)
  2. 2. D · Un cas traité directement, sans nouvel appel récursif
  3. 3. B · Le tri rapide (quicksort)
  4. 4. C · Exponentielle
  5. 5. B · O(n)
  6. 6. D · O(n²)
  7. 7. C · Non, la borne inférieure s'applique au pire cas sur toutes les entrées, pas à chaque entrée
  8. 8. C · O(n log n)

Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.