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
Que signifie qu'une opération s'exécute en temps O(1) ?
AElle prend toujours exactement une seconde
BElle ne peut être exécutée qu'une seule fois
CSon temps d'exécution n'augmente pas avec la taille de l'entrée
DElle traite exactement un élément par seconde de temps d'exécution
2.Facile
Quelle est la complexité temporelle de la recherche linéaire dans un tableau non trié de n éléments (pire cas) ?
AO(n²)
BO(n)
CO(1)
DO(log n)
3.Facile
Quelles sont les trois étapes d'un algorithme « diviser pour régner » ?
ADeviner, vérifier, recommencer
BLire, calculer, écrire
CTrier, chercher, renvoyer
DDiviser, régner, combiner
4.Moyen
Quelle est la complexité temporelle de : pour i = 1 à n : (j = 1 ; tant que j < n : j = j × 2) ?
AO(n log n)
BO(log n)
CO(n²)
DO(n)
5.Moyen
Le parcours en largeur (BFS) sur un graphe non pondéré trouve :
AUn ordre topologique dans tous les graphes
BL'arbre couvrant de poids minimal
CLes plus courts chemins dans les graphes qui contiennent des poids d'arêtes négatifs
DLes plus courts chemins en nombre d'arêtes depuis le nœud de départ
6.Moyen
Pourquoi la programmation dynamique n'apporte-t-elle aucune accélération réelle au tri fusion ?
ASes sous-problèmes ne se chevauchent pas, il n'y a donc rien à réutiliser
BLa programmation dynamique ne fonctionne que sur les problèmes de graphes, pas sur les tableaux
CLe tri fusion est déjà en O(n)
DLe tri fusion n'a pas de structure récursive
7.Difficile
Quelle est la complexité temporelle de la construction d'un tas binaire à partir de n éléments non triés avec la méthode ascendante (bottom-up) ?
AO(n)
BO(n²)
CO(log n)
DO(n log n)
8.Difficile
Quel algorithme trouve un arbre couvrant de poids minimal en ajoutant de façon répétée l'arête la moins coûteuse qui ne forme pas de cycle ?
AL'algorithme de Kruskal
BL'algorithme de Dijkstra
CFloyd-Warshall
DL'algorithme de Prim à partir d'un seul nœud
Corrigé
1. C · Son temps d'exécution n'augmente pas avec la taille de l'entrée
2. B · O(n)
3. D · Diviser, régner, combiner
4. A · O(n log n)
5. D · Les plus courts chemins en nombre d'arêtes depuis le nœud de départ
6. A · Ses sous-problèmes ne se chevauchent pas, il n'y a donc rien à réutiliser
7. A · O(n)
8. A · L'algorithme de Kruskal
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.