TDA = cahier des charges d’interface ; implémentation = coût (temps/mémoire)
TDD : Red d’abord (test échoue) puis Green (code minimal) puis Refactor ensuite (idée de suite par tests).
Arbre libre = Connexe + Sans cycle ⇒ Connexion garantie et chemin unique (et |E| = |V|−1).
Cas de base = STOP : si l’entrée vaut null (ou si plus de voisins à explorer), la récursion s’arrête avant de boucler.
BFS = niveaux par distance + File FIFO : on sort toujours le plus ancien découvert (tête) puis on ajoute les nouveaux (queue).
Récursion = arbre; Mémorisation = panneau « déjà vu »; Programmation dynamique n’est utile que si plusieurs chemins veulent recalculer les mêmes sous-problèmes.
Pensez à la chaîne : WHERE = filtrer, ORDER BY = trier, DISTINCT = dédoublonner, COUNT = compter, JOIN = assembler.
| Date | Événement |
|---|---|
| 1950 | Introduction de la programmation dynamique (au début des années 1950) |
| 1960 | Proposition du tri rapide par C. A. R. Hoare |
| 1970 | Mise au point des bases de données relationnelles par Edgar Franck Codd |
| 1928 | Hilbert pose le problème de la décision (Entscheidungsproblem) |
| 1931 | Gödel montre l’existence de propriétés indécidables |
| 1936 | Turing montre l’indécidabilité du problème de l’arrêt |
| 1937 | Turing formule la notion de décidabilité via la terminaison d’un programme |
BFS vs DFS (parcours de graphes)
| Aspect | BFS | DFS |
|---|---|---|
| Ordre d’exploration | Exploration par distance croissante (niveaux) depuis le sommet de départ | Descend au plus profondément possible puis remonte (exploration récursive) |
| Structure à utiliser | Une file (file FIFO) | Sans contrainte de file : exploration récursive (ou pile si évitement récursivité) |
| Objectif clé dans le cours | Parcours permettant d’atteindre/visiter niveau par niveau | Détection de cycle via rencontre d’un sommet déjà visité (gris) |
| Complexité donnée | O(|S|+|A|) | Parcours sur graphe exploré depuis un sommet (complexité non remise sous forme différente dans le cours, mais exploration marquée) |
Teste tes connaissances sur Introduction aux structures de données et algorithmes avec 24 questions à choix multiples et corrections détaillées.
1. Quelle description correspond le mieux à une structure de données ?
2. Dans un dictionnaire tableau associatif, quelle opération fait partie de l’interface de base ?
Mémorisez les concepts clés de Introduction aux structures de données et algorithmes avec 24 flashcards interactives.
Structure de données — définition ?
Organisation et stockage d’informations.
Type de données abstrait — rôle ?
Décrit l’interface et les opérations.
Ensemble dynamique — caractéristique ?
Permet insertion et suppression en cours d’exécution.
Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.
Générateur de fiches