DanLevy.net

Quiz : Structures de données et algorithmes

Pouvez‑vous effectuer une recherche binaire sur un arbre binaire ?

Bienvenue à mon quiz sur les structures de données et les algorithmes !

Ce quiz évaluera votre connaissance des structures de données (piles, listes, arbres, etc.), des algorithmes () et de la complexité temporelle.

20 questions… Commencez !

Quelle structure de données est la mieux adaptée à un schéma d’accès LIFO (dernier entré, premier sorti) ?

Les piles sont les mieux adaptées aux schémas d’accès LIFO. Les files sont les mieux adaptées aux schémas d’accès FIFO (premier entré, premier sorti).

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Quelle est la complexité temporelle d’un algorithme qui prend toujours le même temps d’exécution, quelle que soit la taille de l’entrée ?

O(1) représente une complexité temporelle constante. Cela signifie que l’algorithme prend toujours le même temps d’exécution, quelle que soit la taille de l’entrée.

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Si une liste simplement chaînée ne stocke pas sa longueur, quelle est la complexité temporelle du calcul de cette longueur par parcours ?

Pour calculer la longueur d’une liste simplement chaînée, vous devez parcourir chaque nœud du début à la fin, ce qui donne une complexité temporelle de O(n).

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Quelle est la complexité temporelle moyenne pour rechercher un élément dans un arbre binaire de recherche équilibré ?

Dans un BST équilibré, la complexité temporelle moyenne pour une recherche est O(log n) car chaque niveau réduit de moitié l’espace de recherche.

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Quelle est la complexité temporelle de l’algorithme Merge Sort dans le pire cas ?

Le tri fusion fonctionne toujours avec une complexité dans le pire cas de O(n log n) car il divise de manière répétée le tableau en deux et fusionne les sous‑tableaux triés.

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Quelle structure de données est généralement utilisée pour implémenter la recherche en largeur (BFS) ?

BFS utilise une file d’attente pour explorer les nœuds niveau par niveau, en traitant les nœuds de largeur (par « ligne »).

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Quel parcours détecte un cycle orienté en trouvant une arête vers un sommet encore présent dans sa pile de récursion ?

La recherche en profondeur (DFS) est généralement utilisée pour détecter les cycles dans un graphe en maintenant une pile de récursion pour suivre les nœuds visités.

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Quelle est la complexité temporelle du tri par tas dans le pire cas ?

Le tri par tas conserve une complexité temporelle de pire cas de O(n log n), car il construit un tas et extrait répétitivement l’élément maximal.

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Quelle est la complexité temporelle moyenne pour accéder à un élément dans une table de hachage ?

Les tables de hachage ont une complexité temporelle moyenne de O(1) pour accéder aux éléments, en supposant une fonction de hachage efficace qui minimise les collisions.

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Quel ensemble contient les opérations typiques effectuées sur une pile ?

Les opérations principales d’une pile sont Push (ajouter un élément), Pop (supprimer un élément) et Peek (voir l’élément du sommet sans le supprimer).

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Quel algorithme glouton de plus court chemin depuis une source unique sélectionne à chaque étape le sommet non finalisé de plus petite distance provisoire, généralement avec une file de priorité, et exige des poids d’arêtes non négatifs ?

L’algorithme de Dijkstra est fréquemment utilisé pour trouver le plus court chemin dans les graphes dont les poids des arêtes sont non négatifs. Il utilise une file de priorité pour déterminer la distance la plus courte de manière efficace.

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Quel ensemble contient des exemples de structures d’arbres de recherche auto-équilibrés ?

Les arbres AVL et les arbres rouge-noir sont des types d’arbres auto‑équilibrés, qui garantissent que l’arbre reste équilibré après chaque insertion ou suppression.

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Qu’est‑ce qui doit être défini dans une fonction récursive pour éviter une récursion infinie ?

Un cas de base est nécessaire dans une fonction récursive pour arrêter les appels récursifs lorsqu’une condition spécifique est remplie, évitant ainsi une récursion infinie.

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Quelles sont les deux opérations principales d’une file ?

Les deux opérations principales d’une file sont Enqueue (ajouter un élément à l’arrière) et Dequeue (retirer un élément à l’avant).

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Quelles sont les conditions pour effectuer un tri topologique sur un graphe ?

Le tri topologique peut être effectué sur un graphe s’il est orienté et acyclique (DAG). Ce type d’ordre est utile dans les problèmes de planification de tâches.

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Quelle est la complexité temporelle d’une implémentation récursive naïve de la suite de Fibonacci ?

L’implémentation récursive naïve de la suite de Fibonacci a une complexité temporelle de O(2^n) en raison des calculs répétés et intensifs pour chaque nombre de Fibonacci.

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Quelle structure de données est couramment utilisée pour implémenter une file de priorité ?

Une file de priorité est le plus souvent implémentée à l’aide d’un tas car il permet une extraction efficace de l’élément de priorité la plus haute ou la plus basse.

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Quel ensemble répertorie les ordres de parcours en profondeur courants pour un arbre binaire ?

Les parcours infixe (in-order), préfixe (pre-order) et postfixe (post-order) sont les trois ordres de parcours en profondeur les plus courants pour les arbres binaires, chacun visitant les nœuds dans un ordre différent. Le parcours en largeur est également fréquent, mais il appartient à une catégorie de parcours différente.

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Lesquelles des propriétés suivantes sont vraies pour un tas minimum ?

Dans un tas minimum, la racine est toujours le plus petit élément, et la hauteur de l’arbre est O(log n), ce qui rend l’insertion et l’extraction efficaces.

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.

Le tri à bulles standard est-il stable s’il échange deux éléments adjacents uniquement lorsque la clé de gauche est strictement supérieure à celle de droite ?

Avec cette comparaison stricte, les éléments de clés égales ne se dépassent jamais : le tri à bulles est donc stable. Une implémentation qui échange aussi les clés égales peut perdre cette propriété.

Examinez le mode d’accès plutôt que le nom de la structure. La réponse dépend souvent de ce qui doit se produire en premier ou en dernier.