Algorithmes : De Zéro à Héro (Un Guide pour Débutants)
Algorithmes : De Zéro à Héro (Un Guide pour Débutants)
Bienvenue dans le guide définitif des algorithmes pour débutants ! Ce cours complet de 60 leçons est conçu pour vous faire passer de la méconnaissance totale de la pensée computationnelle et de l'efficacité à la maîtrise des structures de données fondamentales, des techniques de tri, des algorithmes de graphes avancés et des paradigmes algorithmiques essentiels comme la Dynamic Programming et les approches Greedy. Vous apprendrez le « pourquoi » d'un code efficace, maîtrisant la compétence cruciale de l'analyse algorithmique à l'aide de la notation Big O. À la fin de ce parcours, vous posséderez une base solide pour aborder les entretiens techniques et construire des solutions logicielles hautement optimisées.
Leçons
- Leçon 1 : Qu'est-ce qu'un algorithme ?
- Leçon 2 : Pourquoi étudier les algorithmes ?
- Leçon 3 : Les algorithmes dans l'informatique quotidienne
- Leçon 4 : Mesurer la performance : Temps et Espace
- Leçon 5 : Introduction à la notation Big O
- Leçon 6 : Analyse du Temps Constant : O(1)
- Leçon 7 : Analyse du Temps Linéaire : O(N)
- Leçon 8 : Analyse du Temps Quadratique : O(N²)
- Leçon 9 : Analyse du Temps Logarithmique : O(log N)
- Leçon 10 : Scénarios du Pire, Moyen et Meilleur Cas
- Leçon 11 : Tableaux et Linked Lists (Comparaison)
- Leçon 12 : Stacks (LIFO) et Queues (FIFO)
- Leçon 13 : Hash Tables (Mappage de clés à des valeurs)
- Leçon 14 : Introduction à la Récursivité (Le Concept)
- Leçon 15 : Récursivité vs. Itération
- Leçon 16 : Bubble Sort : Concept et Implémentation
- Leçon 17 : Analyse de l'Efficacité du Bubble Sort
- Leçon 18 : Selection Sort : Concept et Implémentation
- Leçon 19 : Insertion Sort : Concept et Implémentation
- Leçon 20 : Comparaison Pratique des Tris O(N²)
- Leçon 21 : Merge Sort : L'Approche Diviser pour Régner (Partie 1)
- Leçon 22 : Merge Sort : Implémentation et Étape de Fusion (Partie 2)
- Leçon 23 : Quick Sort : La Stratégie du Pivot (Partie 1)
- Leçon 24 : Quick Sort : Partitionnement et Récursivité (Partie 2)
- Leçon 25 : Comparaison des Tris N log N (Merge vs. Quick)
- Leçon 26 : Linear Search : Simple et Efficace
- Leçon 27 : Binary Search : Exigence et Implémentation (O(log N))
- Leçon 28 : Applications Avancées de la Binary Search
- Leçon 29 : Hachage et Résolution de Collisions
- Leçon 30 : Filtres de Bloom (Introduction aux Structures Probabilistes)
- Leçon 31 : Introduction aux Arbres (Terminologie, Racine, Nœuds)
- Leçon 32 : Binary Search Trees (BSTs) : Insertion et Recherche
- Leçon 33 : Algorithmes de Parcours d'Arbre : Inorder, Preorder, Postorder
- Leçon 34 : Heaps (Tas) : Structure Max Heap et Min Heap
- Leçon 35 : Algorithme de Tri par Tas (Heap Sort)
- Leçon 36 : Introduction aux Graphes (Nœuds, Arêtes, Types)
- Leçon 37 : Représentation des Graphes : Matrice d'Adjacence vs. Liste d'Adjacence
- Leçon 38 : Depth First Search (DFS) : Concept et Implémentation
- Leçon 39 : Breadth First Search (BFS) : Concept et Implémentation
- Leçon 40 : DFS vs. BFS : Choisir le Bon Parcours
- Leçon 41 : Graphes Pondérés et Problème du Plus Court Chemin
- Leçon 42 : Algorithme de Dijkstra : Introduction et Avidité (Greediness)
- Leçon 43 : Algorithme de Dijkstra : Étapes d'Implémentation Détaillées
- Leçon 44 : Gérer les Poids Négatifs : Introduction à Bellman-Ford
- Leçon 45 : Plus Court Chemin entre Toutes Paires : Introduction à Floyd-Warshall
- Leçon 46 : Introduction aux Paradigmes Algorithmiques
- Leçon 47 : Divide and Conquer : Révision de Merge Sort/Quick Sort
- Leçon 48 : Greedy Algorithms : Caractéristiques et Pièges
- Leçon 49 : Exemple Glouton : Problème du Rendu de Monnaie (Cas Simple)
- Leçon 50 : Minimum Spanning Trees (MST) : Concept de l'Algorithme de Prim
- Leçon 51 : Algorithme de Kruskal : Utilisation de la structure Disjoint Set Union (DSU)
- Leçon 52 : Introduction à la Dynamic Programming (DP)
- Leçon 53 : Exemple DP 1 : Memoization (Approche Top-Down)
- Leçon 54 : Exemple DP 2 : Tabulation (Approche Bottom-Up - Fibonacci)
- Leçon 55 : Exemple DP 3 : Problème du Sac à Dos (Introduction 0/1)
- Leçon 56 : Algorithmes de String Matching : Introduction à l'Approche Naïve
- Leçon 57 : Introduction aux Classes de Complexité : P vs. NP
- Leçon 58 : Algorithmes de Backtracking : Concept du Problème N-Queens
- Leçon 59 : Algorithmes Probabilistes et Quick Sort Randomisé
- Leçon 60 : Conclusion du Cours, Révision et Prochaines Étapes