Structures de données et algorithmes

Les tâches A à E ont les contraintes d'ordre « A avant C », « B avant C », « C avant D », « B avant E » et « E avant D ». Quel ordre satisfait toutes les contraintes (résultat d'un tri topologique) ?

  1. AA, C, B, E, D
  2. BB, A, E, C, D
  3. CB, E, D, A, C
Afficher la réponse et l'explication

Réponse : B. B, A, E, C, D

Dans B, A, E, C, D, A et B viennent avant C, C et E avant D, et B avant E : les cinq contraintes sont respectées. A, C, B, E, D place C avant B, ce qui viole « B avant C », et B, E, D, A, C place D avant C, ce qui viole « C avant D ». Le tri topologique range les sommets d'un graphe orienté acyclique (DAG) de sorte que chaque arête aille d'un sommet antérieur vers un sommet postérieur ; on peut le réaliser en retirant de façon répétée un sommet sans arête entrante (algorithme de Kahn) ou par un parcours en profondeur. La réponse n'est pas toujours unique : cet exemple admet cinq ordres valides.

S'entraîner sur ce thème Retour au thème

Autres questions sur Structures de données et algorithmes

  1. Une fonction f(x, y) est définie par « si y vaut 0, renvoyer x ; sinon, renvoyer f(y, x mod y) ». Quand on appelle f(84, 36), quelle est la valeur renvoyée, et combien de fois f est-elle appelée, premier appel compris ?
  2. Une fonction fib(n) qui calcule les nombres de Fibonacci est définie par récursion : « si n vaut 1 ou moins, renvoyer n ; sinon, renvoyer fib(n−1) + fib(n−2) ». Quand on appelle fib(5), combien de fois fib est-elle appelée, premier appel compris ?
  3. On paie 8 yens avec des pièces de 1 yen, 4 yens et 6 yens. Quelle affirmation relie correctement le nombre de pièces choisi par un algorithme glouton, qui utilise d'abord autant que possible la plus grosse pièce, et le nombre minimal de pièces ?
  4. On remplit un sac à dos de capacité 8 avec des objets choisis parmi quatre objets de (poids, valeur) (2, 3), (3, 4), (4, 5) et (5, 6). Il n'existe qu'un exemplaire de chaque objet, et les objets ne peuvent pas être fractionnés. Quelle est la valeur totale maximale pour un poids total de 8 ou moins ?
  5. Quelle est une caractéristique de l'algorithme de Boyer-Moore, qui recherche un motif dans une chaîne de caractères ?