COURS COMPLET : DATA STRUCTURES &
ALGORITHMES
Objectif : Devenir fort en structures de données et algorithmes, de zéro à niveau avancé. Ce cours
couvre les bases fondamentales, les structures linéaires, les arbres, graphes, algorithmes de tri,
recherche et introduction au dynamic programming.
1. Complexité Algorithmique (Big O)
La notation Big O mesure la performance d'un algorithme en fonction de la taille des données
d'entrée (n).
• O(1) : Temps constant
• O(log n) : Logarithmique (Binary Search)
• O(n) : Linéaire
• O(n log n) : Merge Sort
• O(n²) : Double boucle (Bubble Sort)
2. Structures de Données Linéaires
Array (Tableau) : - Accès O(1) - Recherche O(n) Stack (Pile) : - LIFO (Last In First Out) - Utilisé
pour undo, parenthèses Queue (File) : - FIFO (First In First Out) - Utilisé pour BFS
3. Linked List
Une Linked List est composée de noeuds. Chaque noeud contient : - Une valeur - Un pointeur vers
le noeud suivant Avantage : insertion rapide O(1) Inconvénient : pas d'accès direct
4. Algorithmes de Tri
Bubble Sort : - Complexité O(n²) - Compare éléments adjacents Merge Sort : - Complexité O(n log
n) - Divide & Conquer
5. Recherche Binaire
Binary Search : - Complexité O(log n) - Nécessite un tableau trié - Divise le problème par 2 à
chaque étape
6. Arbres et Graphes
Binary Tree : Chaque noeud possède un fils gauche et droit. Binary Search Tree (BST) : - Gauche
< Racine - Droite > Racine Graph : - Représenté par liste d'adjacence - Algorithmes : BFS, DFS
7. Dynamic Programming
Technique d'optimisation basée sur : - Sous-problèmes - Mémoïsation - Table (bottom-up)
Exemples : - Fibonacci optimisé - Knapsack - Longest Common Subsequence