QCM Algorithmes, structures de données et complexité – Partie 18

Les algorithmes, les structures de données et la complexité sont des concepts fondamentaux en informatique, essentiels pour concevoir des systèmes performants et efficaces. Que vous soyez étudiant, professionnel en développement logiciel ou passionné par l’informatique, comprendre ces notions est crucial pour résoudre des problèmes complexes et optimiser les performances des applications. Dans cet article, nous vous proposons un QCM (Questionnaire à Choix Multiples) couvrant ces trois domaines clés. À travers ce test, vous pourrez évaluer vos connaissances en matière de conception d’algorithmes, de choix de structures de données appropriées et d’analyse de la complexité des algorithmes. Que vous soyez débutant ou confirmé, ce QCM vous aidera à tester vos compétences et à améliorer votre compréhension de ces concepts fondamentaux.
 
 

1. Qu’est-ce qu’un « graph » dans le contexte des algorithmes ?

A Un algorithme pour trier des éléments.

B Une structure de données constituée de nœuds et d’arêtes.

C Un type de tableau à une dimension.

D Un moyen d’optimiser la recherche dans une liste.

B
Un graphe est une structure de données composée de nœuds (ou sommets) et d’arêtes (ou arcs) qui relient ces nœuds entre eux. Il est utilisé pour modéliser des relations entre des objets, par exemple dans les réseaux sociaux, les réseaux de transport, ou les itinéraires de navigation.

 

 

2. Qu’est-ce que la « complexité spatiale » d’un algorithme ?

A Le nombre d’instructions exécutées par l’algorithme.

B Le temps que met l’algorithme à s’exécuter.

C La quantité de mémoire que l’algorithme utilise pendant son exécution.

D La capacité de l’algorithme à résoudre des problèmes complexes.

C
La complexité spatiale mesure l’espace mémoire utilisé par un algorithme pendant son exécution, ce qui peut inclure les variables, les structures de données et l’espace supplémentaire utilisé par la récursion.

 

 

3. Quelle structure de données est souvent utilisée pour implémenter une pile ?

A Enum

B Liste chaînée

C Arbre binaire

D Graphe

B
Une pile (ou « stack ») est souvent implémentée à l’aide d’une liste chaînée. Elle suit le principe LIFO (Last In, First Out), où l’élément ajouté en dernier est le premier à être retiré.

 

 
 

4. Quelle est la principale caractéristique d’un algorithme « glouton » ?

A Il choisit la meilleure solution globale à chaque étape, sans se soucier des conséquences futures.

B Il divise le problème en sous-problèmes et les résout de manière récursive.

C Il utilise la programmation dynamique pour optimiser la solution.

D Il recherche toutes les solutions possibles avant de faire un choix.

A
Un algorithme glouton prend des décisions locales optimales à chaque étape, en espérant qu’elles conduiront à une solution globale optimale. Cependant, il ne garantit pas toujours la meilleure solution.

 

 

5. Quelle est la complexité temporelle de l’algorithme de recherche linéaire dans un tableau de taille n ?

A O(1)

B O(log n)

C O(n)

D O(n²)

C
La recherche linéaire consiste à parcourir chaque élément du tableau jusqu’à ce que l’élément recherché soit trouvé. Dans le pire des cas, on doit examiner tous les éléments du tableau, d’où une complexité de O(n).

 

 

6. Dans un arbre binaire de recherche, quel est le cas idéal de complexité de recherche d’un élément ?

A O(1)

B O(log n)

C O(n)

D O(n log n)

B
Dans un arbre binaire de recherche équilibré, l’algorithme de recherche d’un élément suit un chemin qui divise l’arbre en deux à chaque étape. Cela permet de réduire la recherche à une complexité O(log n). Cependant, dans le cas d’un arbre très déséquilibré (par exemple, un arbre qui devient une liste), la complexité peut être O(n).

 

 
 

7. Quelle structure de données est utilisée pour implémenter une pile (stack) ?

A Liste chaînée

B Tableau

C Arbre binaire

D Graphe

B
Une pile (stack) peut être implémentée avec un tableau ou une liste chaînée, mais l’utilisation d’un tableau est la plus courante. Elle suit le principe LIFO (Last In First Out), où le dernier élément inséré est le premier à être retiré.

 

 

8. Qu’est-ce que la complexité temporelle O(log n) décrit ?

A La performance d’un algorithme qui diminue linéairement avec la taille des données

B Un algorithme qui résout le problème en divisant l’entrée en deux à chaque étape

C Un algorithme qui effectue une recherche exhaustive

D Un algorithme qui parcourt tous les éléments dans l’entrée

B
La complexité O(log n) est typique des algorithmes qui réduisent la taille du problème de moitié à chaque itération, comme la recherche binaire dans un tableau trié.

 

 

9. Quelle structure de données permet de trouver le plus petit élément en temps constant ?

A Tas (Heap)

B Tableau

C Liste chaînée

D Pile (Stack)

A
Dans un tas (heap), le plus petit élément est toujours à la racine (pour un tas min), ce qui permet de le récupérer en temps constant O(1).

 

 
 

10. Quelle est la complexité temporelle de l’insertion dans une liste chaînée ?

A O(1)

B O(n)

C O(log n)

D O(n log n)

A
L’insertion dans une liste chaînée est effectuée en temps constant O(1) si on a directement accès à l’endroit où insérer (par exemple, à la tête ou à la queue de la liste).

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *