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
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 insère chaque élément dans une partie triée croissante par décalages
CIl divise le tableau en deux moitiés et les fusionne
DIl échange à plusieurs reprises les éléments voisins mal ordonnés
2.Facile
Le temps d'exécution d'un algorithme est O(n). Comment appelle-t-on cette croissance ?
AQuadratique
BLinéaire
CLogarithmique
DConstante
3.Facile
Laquelle de ces fonctions croît le plus lentement quand n devient grand ?
AO(n)
BO(log n)
CO(n log n)
DO(n²)
4.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(n)
BO(2ⁿ)
CO(n²)
DO(log n)
5.Moyen
La programmation dynamique est utile lorsqu'un problème présente :
AAucun sous-problème, de sorte qu'il peut être résolu en une seule étape
BUniquement des entrées aléatoires
CUne seule boucle
DDes sous-problèmes qui se chevauchent et une sous-structure optimale
6.Moyen
Pourquoi la programmation dynamique n'apporte-t-elle aucune accélération réelle au tri fusion ?
ALe tri fusion n'a pas de structure récursive
BLe tri fusion est déjà en O(n)
CSes sous-problèmes ne se chevauchent pas, il n'y a donc rien à réutiliser
DLa programmation dynamique ne fonctionne que sur les problèmes de graphes, pas sur les tableaux
7.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³)
BO((V + E) log V)
CO(V × E)
DO(V + E)
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) ?
AO(n √n)
BO(n²)
CO(n)
DO(n log n)
Corrigé
1. A · Il cherche à plusieurs reprises le minimum de la partie non triée et l'échange vers l'avant
2. B · Linéaire
3. B · O(log n)
4. A · O(n)
5. D · Des sous-problèmes qui se chevauchent et une sous-structure optimale
6. C · Ses sous-problèmes ne se chevauchent pas, il n'y a donc rien à réutiliser
7. B · O((V + E) log V)
8. D · O(n log n)
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.