Flashcards : Algorithmique et structures de données — 69 cartes

Toutes les cartes

1Question

Qu'est-ce qu'un algorithme ?

Réponse

Une suite finie, ordonnée et non ambiguë d’instructions transformant des entrées en sorties.

2Question

Qu'est-ce qui différencie une affectation d'une égalité mathématique ?

Réponse

L'affectation modifie la valeur d'une variable, contrairement à une égalité mathématique.

3Question

Qu'est-ce qu'un invariant dans une boucle ?

Réponse

Une propriété qui reste vraie à chaque itération de la boucle.

4Question

Que combine la correction totale d'un algorithme ?

Réponse

La correction partielle et la terminaison.

5Question

Qu'assure la correction partielle dans la correction totale ?

Réponse

Elle est garantie par les préconditions, postconditions et invariants.

6Question

Quelle différence d'exécution existe entre une boucle tant qu'et une boucle répéter...jusqu'à ?

Réponse

La boucle tant que peut ne jamais s’exécuter, la boucle répéter...jusqu’à s’exécute au moins une fois.

7Question

Quel est l'ordre croissant usuel des complexités en notation O ?

Réponse

O(1), O(log n), O(n), O(n log n), O(n²), O(n³), O(2ⁿ), puis O(n!).

8Question

Qu'impose O(g) en termes de bornes pour une fonction ?

Réponse

Une borne supérieure.

9Question

Qu'impose Ω(g) en termes de bornes pour une fonction ?

Réponse

Une borne inférieure.

10Question

Que représente Θ(g) pour la croissance d'une fonction ?

Réponse

Une croissance précise à constante près.

11Question

Quelle complexité donne la récurrence T(n)=T(n−1)+O(1) ?

Réponse

O(n).

12Question

Quelle complexité donne la récurrence T(n)=T(n/2)+O(1) ?

Réponse

O(log n).

13Question

Que garantit la complexité amortie ?

Réponse

Un coût moyen sur une séquence d’opérations.

14Question

Quelle différence existe entre un TAD et une structure de données ?

Réponse

Le TAD décrit les opérations, la structure est une implémentation concrète.

15Question

Quelles sont les caractéristiques d'un tableau en termes d'indexation et d'accès ?

Réponse

Un tableau est contigu, indexé de 0 à n−1, avec accès A[i] en O(1).

16Question

Quel est le coût amorti de l’ajout en fin dans un tableau dynamique ?

Réponse

L’ajout en fin coûte O(1) amorti.

17Question

Pourquoi l’insertion ou suppression au milieu d’un tableau dynamique coûte O(n) ?

Réponse

À cause des décalages nécessaires.

18Question

Comment calcule-t-on la somme A[l..r] avec les préfixes cumulés ?

Réponse

La somme vaut P[r+1]−P[l] avec P[0]=0 et P[i+1]=P[i]+A[i].

19Question

Quel est le temps et la mémoire nécessaires pour calculer une somme avec prétraitement de préfixes cumulés ?

Réponse

Le prétraitement prend O(n) et la somme se calcule en O(1).

20Question

Quelle est la complexité d’insertion après un nœud connu dans une liste chaînée ?

Réponse

L’insertion après un nœud connu coûte O(1).

21Question

Quelle est la complexité d’accès au iᵉ nœud et de recherche dans une liste chaînée ?

Réponse

L’accès et la recherche coûtent O(n).

22Question

Comment fonctionne la détection de cycle de Floyd en termes de pointeurs et complexité ?

Réponse

Elle utilise un pointeur lent et un rapide en O(n) temps et O(1) mémoire.

23Question

Qu'est-ce qu'une collision en hachage ?

Réponse

Plusieurs clés produisent le même indice de hachage.

24Question

Comment gère-t-on une collision en hachage ?

Réponse

Par chaînage ou adressage ouvert.

25Question

Que signifie que deux clés égales produisent le même hash ?

Réponse

Elles ont le même indice de hachage.

26Question

Que signifie que deux hashes égaux n'impliquent pas des clés égales ?

Réponse

Des clés différentes peuvent avoir le même hash.

27Question

Quelle est la formule du facteur de charge d'une table de hachage ?

Réponse

α = n/m, avec n le nombre de clés et m la capacité.

28Question

Quelle condition est nécessaire pour la recherche binaire ?

Réponse

Un tableau trié avec accès direct.

29Question

Qu'est-ce qu'un tri stable ?

Réponse

Il conserve l'ordre relatif des éléments aux clés égales.

30Question

Quel est le coût du tri par comptage et quand est-il adapté ?

Réponse

O(n+k), adapté si l'univers k est petit par rapport à n.

31Question

Qu'est-ce qu'une fonction récursive doit posséder pour résoudre un problème ?

Réponse

Un cas de base et une progression vers ce cas.

32Question

Que conserve chaque appel récursif en mémoire ?

Réponse

Ses paramètres, ses variables locales et son adresse de retour.

33Question

Quelle est la complexité mémoire liée à la profondeur des appels récursifs ?

Réponse

Elle est en O(profondeur).

34Question

Qu'est-ce que la mémoïsation en programmation ?

Réponse

Une approche top-down qui mémorise les résultats des sous-problèmes déjà calculés.

35Question

Quels concepts la programmation dynamique exploite-t-elle ?

Réponse

Des sous-problèmes chevauchants et une sous-structure optimale.

36Question

Quels éléments définit la programmation dynamique ?

Réponse

Des états, des transitions et des cas de base.

37Question

Quels sont les étapes clés d'une recette de programmation dynamique ?

Réponse

Définir l’état minimal, la transition, les cas de base, le mode et l’ordre de calcul, et éventuellement la reconstruction.

38Question

Qu'est-ce qu'un arbre en théorie des graphes ?

Réponse

Un graphe connexe sans cycle.

39Question

Combien d'arêtes possède un arbre avec n nœuds ?

Réponse

n−1 arêtes.

40Question

Quelle est la différence entre profondeur et hauteur dans un arbre ?

Réponse

La profondeur est la distance racine-nœud, la hauteur est le plus long chemin nœud-feuille.

41Question

Quels sont les parcours préordre, infixe, postordre et largeur de A(B(D,E),C(F,G)) ?

Réponse

ABDECFG, DBEACFG, DEBFGCA et ABCDEFG respectivement.

42Question

Quelle propriété caractérise un arbre binaire de recherche ?

Réponse

Les clés du sous-arbre gauche sont inférieures à la clé du nœud, celles du droit sont supérieures.

43Question

Quel est le coût des opérations dans un ABR équilibré et dégénéré ?

Réponse

O(log n) si équilibré, O(n) si dégénéré.

44Question

Combien coûte la recherche, insertion et suppression dans un ABR en fonction de la hauteur ?

Réponse

Ces opérations coûtent O(h).

45Question

Quelle structure favorise les requêtes par intervalle sur disque ?

Réponse

Le B+ arbre.

46Question

Que contient un graphe G=(V,E) ?

Réponse

Des sommets et des arêtes ou arcs.

47Question

Quelles sont les caractéristiques possibles d'un graphe ?

Réponse

Il peut être orienté ou non orienté, pondéré ou non pondéré.

48Question

Quelle mémoire utilise une matrice d’adjacence ?

Réponse

Elle utilise O(V²) mémoire.

49Question

Quelle est la complexité pour tester une arête avec une matrice d’adjacence ?

Réponse

Le test s'effectue en O(1).

50Question

Quelle mémoire utilise une liste d’adjacence et pour quel type de graphes est-elle adaptée ?

Réponse

Elle utilise O(V+E) mémoire et convient aux graphes clairsemés.

51Question

Quelle est la somme des degrés dans un graphe non orienté ?

Réponse

Elle vaut 2E.

52Question

Quelle est la somme des degrés entrants et sortants dans un graphe orienté ?

Réponse

Chacune vaut E.

53Question

Quelle structure de données utilise BFS et comment explore-t-il ?

Réponse

BFS utilise une file et explore par niveaux.

54Question

Qu'est-ce que relâcher (u,v,w) dans un algorithme de plus court chemin ?

Réponse

Mettre à jour d[v] et le prédécesseur si d[u]+w<d[v].

55Question

Quelle méthode d'algorithme convient aux arêtes de même coût ?

Réponse

L'algorithme BFS.

56Question

Quel algorithme gère les poids négatifs et détecte les cycles négatifs ?

Réponse

L'algorithme de Bellman-Ford.

57Question

Quelle est la complexité en temps de Dijkstra avec un tas ?

Réponse

O((V+E)log V).

58Question

Quelle est la complexité en mémoire de Floyd-Warshall ?

Réponse

O(V²).

59Question

Qu'est-ce qu'un arbre couvrant minimal ?

Réponse

Un arbre reliant tous les sommets avec V−1 arêtes et poids total minimal.

60Question

Comment Prim choisit-il l'arête à ajouter à l'arbre ?

Réponse

Il ajoute l’arête sortante la moins chère.

61Question

Quel est le coût amorti de Union-Find avec compression de chemin et rang ?

Réponse

O(α(n)).

62Question

Quelles étapes caractérisent la méthode diviser-régner ?

Réponse

Elle divise le problème puis combine les solutions.

63Question

Quelle caractéristique distingue la méthode gloutonne ?

Réponse

Elle choisit localement de manière irréversible avec une preuve nécessaire.

64Question

Quelle particularité a la programmation dynamique ?

Réponse

Elle réutilise des sous-solutions.

65Question

Qu'est-ce que le backtracking ?

Réponse

Une méthode qui construit un choix, explore récursivement puis annule en cas d'impasse.

66Question

À quels types de problèmes s'appliquent les techniques deux pointeurs et fenêtre glissante ?

Réponse

Aux tableaux et intervalles.

67Question

Quelle complexité a l'algorithme KMP ?

Réponse

O(n+m).

68Question

Quelle complexité a l'algorithme Kadane ?

Réponse

O(n).

69Question

Quelle complexité a Quickselect dans le pire cas ?

Réponse

O(n²).

Teste-toi avec le QCM

Teste tes connaissances avec un QCM de 33 questions sur Algorithmique et structures de données.

1. Quel énoncé décrit correctement un algorithme ?

2. Lors de la conception d’une preuve par invariants, que doit être un invariant de boucle ?

Faire le QCM →

Consultez la fiche

Révisez le cours complet dans la fiche de révision de Algorithmique et structures de données.

Voir la fiche →

Cours similaires

Crée tes propres flashcards

Importe ton cours et l'IA génère des flashcards en 30 secondes.

Générateur de flashcards