Choisissez votre langue
Cours d'algorithmique et structures de données
Plus de 2 millions d'étudiants dans le monde

Cours d'algorithmique et structures de données

Maîtrisez toutes les structures de données et algorithmes majeurs dont vous avez besoin pour réussir les entretiens techniques et créer des logiciels hautes performances. Ce cours vous mène des fondamentaux de la mémoire jusqu'à la programmation dynamique, les algorithmes de graphes et la NP-complétude. Que vous prépariez des entretiens FAANG ou que vous cherchiez à améliorer vos compétences d'ingénieur, il s'agit de la ressource DS&A la plus complète disponible.

Dedika pour les entreprises

Ce que vous allez apprendre:

Vous développerez une compréhension pratique approfondie des structures de données, notamment les tableaux, les listes chaînées, les arbres, les graphes et les tables de hachage. Vous apprendrez à analyser l'efficacité des algorithmes à l'aide des notations Big-O, Big-Thêta et Big-Oméga. Le cours couvre en détail le tri, la recherche, la récursion, le backtracking et les stratégies diviser pour régner. Vous implémenterez des algorithmes de plus court chemin et d'arbre couvrant minimum sur des graphes pondérés. Les techniques de programmation dynamique, les algorithmes gloutons et les structures avancées comme les arbres de segments et les tries sont également inclus. À la fin, vous reconnaîtrez rapidement les motifs de problèmes et écrirez des solutions optimisées sous pression.

Comment vous étudiez de façon pratique Cours d'algorithmique et structures de données

Comment vous pratiquez Cours d'algorithmique et structures de données

Pour vous, entreprise, qui souhaitez former votre équipe

Avec Dedika pour les entreprises, le cours inclut des exercices et des exemples adaptés à votre propre activité et aux besoins spécifiques de votre entreprise.

Cliquez ici

Contenu du cours

8 Chapitres • 41 LeçonsDurée entre 4 et 360 heures (vous décidez)

Chapitre 1Voir les détails

Fondations des structures de données

  • Leçon 1 • Tables de hachage et bases du hachage

    Présente le stockage clé-valeur via des fonctions de hachage et des tableaux de buckets. Prépare les étudiants à la gestion des collisions et à l'analyse des performances en moyenne.

  • Leçon 2 • Tableaux et tableaux dynamiques

    Présente le stockage mémoire contigu et l'accès par index. Relie les tableaux statiques aux stratégies de redimensionnement dynamique utilisées dans les implémentations réelles.

  • Leçon 3 • Listes chaînées et chaînes de pointeurs

    Enseigne le stockage basé sur les nœuds à l'aide de pointeurs ou de références. Compare les listes chaînées aux tableaux pour clarifier les compromis en insertion et en parcours.

  • Leçon 4 • Mémoire, variables et types de données

    Couvre la façon dont les données sont stockées en mémoire et en quoi les types primitifs diffèrent. Établit le modèle mental nécessaire pour toute analyse ultérieure des structures.

  • Leçon 5 • Piles et files

    Définit les modes d'accès LIFO et FIFO et leurs implémentations. Ancre le comportement abstrait dans des réalisations basées sur des tableaux et des listes chaînées.

Chapitre 2Voir les détails

Analyse d'algorithmes et complexité

  • Leçon 1 • Techniques de benchmark empiriques

    Fait le pont entre l'analyse théorique et les expériences de temps d'exécution mesurées. Les étudiants conçoivent des benchmarks contrôlés pour valider ou contester les prédictions théoriques.

  • Leçon 2 • Complexité spatiale et compromis

    Analyse l'utilisation de l'espace auxiliaire parallèlement aux coûts temporels. Met en évidence les compromis classiques temps-espace qui guident la sélection pratique des algorithmes.

  • Leçon 3 • Relations de récurrence

    Présente les récurrences comme un outil d'analyse des algorithmes récursifs. Couvre le théorème maître et les méthodes de substitution pour les résoudre.

  • Leçon 4 • Big-O, Big-Theta et Big-Omega

    Définit les notations asymptotiques et leur signification mathématique. Fournit le vocabulaire utilisé tout au long du cours pour comparer les performances des algorithmes.

  • Leçon 5 • Analyse de la complexité temporelle

    Enseigne le comptage d'étapes et l'analyse des pires cas, cas moyens et meilleurs cas. Relie les structures de boucle et la récursion à leurs classes de complexité correspondantes.

Chapitre 3Voir les détails

Algorithmes de tri

  • Leçon 1 • Tris par comparaison élémentaires

    Couvre le tri à bulles, le tri par sélection et le tri par insertion avec une analyse complète de la complexité. Établit une intuition de base avant d'introduire des approches plus efficaces.

  • Leçon 2 • Tris diviser-pour-régner

    Enseigne le tri fusion et le tri rapide à l'aide de la décomposition récursive. Relie l'analyse de récurrence du chapitre 2 aux performances réelles de tri.

  • Leçon 3 • Sélection de l'algorithme de tri

    Synthétise toutes les connaissances sur le tri dans un cadre de décision. Les étudiants associent le choix de l'algorithme à la taille de l'entrée, à la distribution des données et aux contraintes de mémoire.

  • Leçon 4 • Algorithmes de tri en temps linéaire

    Présente le tri par comptage, le tri par base et le tri par bucket comme des méthodes sans comparaison. Clarifie les conditions dans lesquelles un temps linéaire est réalisable.

  • Leçon 5 • Tri par tas et files de priorité

    Présente la structure du tas binaire et son utilisation dans le tri. Fait le lien entre les opérations sur le tas et l'abstraction de file de priorité utilisée dans les algorithmes ultérieurs.

Chapitre 4Voir les détails

Recherche et schémas de récursion

  • Leçon 1 • Mémorisation et DP descendante

    Étend la récursion avec la mise en cache des résultats pour éliminer les calculs redondants. Sert de pont vers le chapitre complet sur la programmation dynamique qui suit.

  • Leçon 2 • Recherche linéaire et binaire

    Compare la recherche séquentielle et la recherche par division sur des données triées et non triées. Établit les préconditions et les garanties de complexité de chaque approche.

  • Leçon 3 • Stratégie diviser-pour-régner

    Formalise le paradigme diviser-régner-combiner au-delà du tri. Les étudiants l'appliquent à des problèmes comme le sous-tableau maximal et la paire de points la plus proche.

  • Leçon 4 • Techniques de retour sur trace (backtracking)

    Introduit la recherche systématique avec élagage via le retour sur trace. Relie les arbres d'appels récursifs aux problèmes de satisfaction de contraintes et de combinatoire.

  • Leçon 5 • Fondamentaux de la récursion

    Définit les cas de base, les appels récursifs et le comportement de la pile d'appels. Fournit la base conceptuelle pour les chapitres à venir sur le parcours d'arbres et le diviser-pour-régner.

Chapitre 5Voir les détails

Arbres et arbres binaires de recherche

  • Leçon 1 • Fondamentaux de l'arbre binaire

    Définit la terminologie des arbres, les relations entre nœuds et les propriétés structurelles. Ancre tous les algorithmes d'arbres ultérieurs dans un vocabulaire et un modèle mental partagés.

  • Leçon 2 • Arbres rouge-noir et arbres B

    Couvre les règles de coloration rouge-noir et la structure des arbres B multi-voies. Relie ces structures à l'indexation de bases de données et aux cas d'usage de systèmes de fichiers.

  • Leçon 3 • Arbres AVL et rotations

    Présente les arbres AVL équilibrés en hauteur et les quatre cas de rotation. Les étudiants implémentent un auto-équilibrage pour garantir des opérations en O(log n).

  • Leçon 4 • Algorithmes de parcours d'arbres

    Couvre les parcours en ordre, préordre, postordre et en largeur. Relie le choix du parcours à des exigences de sortie spécifiques et aux algorithmes en aval.

  • Leçon 5 • Opérations sur les arbres binaires de recherche

    Implémente la recherche, l'insertion et la suppression dans un ABR avec une analyse complète. Met en évidence comment la forme de l'arbre affecte les performances et motive l'équilibrage.

Chapitre 6Voir les détails

Graphes : représentation et parcours

  • Leçon 1 • Parcours en profondeur (DFS)

    Implémente DFS de manière récursive et itérative avec les temps de découverte et de fin. Relie DFS à la détection de cycles, au tri topologique et aux composantes connexes.

  • Leçon 2 • Tri topologique

    Obtient un ordre topologique à partir des temps de fin de DFS et de l'algorithme de Kahn. Applique l'ordre à la résolution de dépendances et aux problèmes d'ordonnancement de tâches.

  • Leçon 3 • Terminologie et représentations des graphes

    Définit les sommets, les arêtes, les graphes orientés vs. non orientés et pondérés. Compare les représentations par matrice d'adjacence et par liste d'adjacence en termes de coût d'espace et d'accès.

  • Leçon 4 • Parcours en largeur (BFS)

    Implémente BFS à l'aide d'une file et analyse sa complexité O(V+E). Applique BFS à la recherche du plus court chemin dans les graphes non pondérés.

  • Leçon 5 • Composantes connexes et ponts

    Identifie les composantes fortement et faiblement connexes à l'aide d'algorithmes basés sur DFS. Introduit la détection de ponts et de points d'articulation pour l'analyse de la fiabilité des réseaux.

Chapitre 7Voir les détails

Algorithmes de graphes : plus courts chemins et arbres couvrants de poids minimum

  • Leçon 1 • Arbres couvrants minimum : Kruskal

    Construit des arbres couvrants minimum en ajoutant gloutonnement les arêtes de poids minimum à l'aide de l'union-find. Analyse la justesse via la propriété de coupe et la propriété de cycle des arbres couvrants minimum.

  • Leçon 2 • Algorithme du plus court chemin de Dijkstra

    Implémente Dijkstra à l'aide d'une file de priorité par tas-min avec une complexité O((V+E) log V). Couvre la preuve de justesse via l'invariant de relâchement glouton.

  • Leçon 3 • Plus courts chemins entre toutes les paires

    Résout les plus courts chemins entre chaque paire de sommets à l'aide de Floyd-Warshall. Analyse la formulation par programmation dynamique en O(V³) et la reconstruction du chemin.

  • Leçon 4 • Arbres couvrants minimum : Prim

    Fait croître un arbre couvrant minimum à partir d'un sommet semence à l'aide d'une file de priorité dans l'algorithme de Prim. Compare Prim à Kruskal en fonction de la densité du graphe et de la complexité d'implémentation.

  • Leçon 5 • Bellman-Ford et poids négatifs

    Étend le plus court chemin aux graphes avec des poids d'arêtes négatifs à l'aide de Bellman-Ford. Détecte les cycles de poids négatif qui rendent les plus courts chemins indéfinis.

Chapitre 8Voir les détails

Programmation dynamique

  • Leçon 1 • Problèmes DP 1D classiques

    Résout Fibonacci, la montée d'escaliers et le rendu de monnaie à l'aide de tables DP 1D. Développe l'intuition du remplissage de table avant de passer aux formulations 2D.

  • Leçon 2 • DP sur les arbres et les graphes

    Applique la DP aux structures arborescentes et aux DAG pour des problèmes d'optimisation avancés. Couvre la DP sur arbre pour le diamètre, les ensembles indépendants et la DP sur les chemins d'un DAG.

  • Leçon 3 • Problèmes de sac à dos et de sous-ensemble

    Résout le sac à dos 0/1, le sac à dos illimité et la somme de sous-ensemble avec des tables DP. Relie ces problèmes à l'allocation de ressources et aux problèmes de décision de faisabilité.

  • Leçon 4 • Problèmes DP 2D classiques

    Étend la DP aux tables bidimensionnelles pour les problèmes de chaînes et de grilles. Couvre la distance d'édition, la plus longue sous-séquence commune et le comptage de chemins dans une grille avec des dérivations complètes de récurrence.

  • Leçon 5 • Optimisation de l'espace en DP

    Réduit l'espace de la table DP de O(n²) à O(n) ou O(1) à l'aide de tableaux roulants. Applique l'optimisation de l'espace au sac à dos, à la plus longue sous-séquence commune et à la distance d'édition.

  • Leçon 6 • Principes de la DP et identification des problèmes

    Définit la sous-structure optimale et les sous-problèmes qui se chevauchent comme prérequis de la DP. Enseigne une méthode systématique pour reconnaître les problèmes solubles par DP.

Certification

Votre certificat valide de réussite

Ce cours est pour vous :

  • Développeur logiciel : souhaite combler les lacunes laissées par l'auto-apprentissage ou une formation en bootcamp.

  • Étudiant en informatique : a besoin d'une pratique structurée au-delà de ce que les cours magistraux offrent seuls.

  • Personne en reconversion professionnelle : entre dans le génie logiciel sans formation technique préalable.

  • Ingénieur backend : prêt à optimiser des systèmes mais manque de bases algorithmiques formelles.

  • Programmeur compétitif : se construit une boîte à outils fiable pour résoudre des problèmes chronométrés.

  • Ingénieur données : a besoin de meilleures bases algorithmiques pour concevoir des pipelines de données efficaces.

Ce que disent nos élèves

Vos cours sont parfaits. J'ai acheté le forfait d'un an et j'ai enfin l'opportunité de suivre divers sujets qui m'intéressent sans avoir besoin de changer de plateforme... je vous remercie pour tout ce que vous faites, je vous ai déjà recommandés à d'autres personnes...
Giulio Carlo
Giulio CarloÉtudiant en Marketing Digital
J'aime la façon dont les leçons vont droit au but et comment je peux changer de chapitres et passer le contenu dont je n'ai pas besoin.
Mariana Ferres
Mariana FerresÉtudiante en Photographie
J'aime le contenu et la façon dont les vidéos sont présentées et transcrites, ce qui accélère le processus !
Luciana Alvarenga
Luciana AlvarengaÉtudiante en Design d'Ongles
La plateforme est rapide, simple à utiliser. La diversité du contenu et les vidéos complémentaires aident beaucoup dans l'apprentissage.
André Felipe
André FelipeÉtudiant en Ingénierie de Prompt

Formations principales

FAQ

Qui est Dedika ?

Le certificat est-il valable au Maroc ?

Les cours sont-ils gratuits ?

Quelle est la charge de travail du cours ?

Comment sont les cours ?

Comment fonctionnent les cours ?

Quelle est la durée des cours ?

Quel est le coût ou le prix des cours ?

Qu'est-ce qu'un cours EAD ou en ligne et comment ça marche ?

Cours PDF