Description
1) Algorithmes de tri (Sorting)
Particulièrement adaptés à une visualisation en barres/colonnes, avec des changements fréquents et très visibles. Inclus :
- Tri à bulles, tri par sélection, tri par insertion, tri de Shell
- Tri fusion, tri rapide, tri par tas (heap sort)
- Tri par comptage, tri radix, tri par seaux (bucket sort)
- Tri cocktail, tri peigne (comb sort)
- Tris hybrides (ex. TimSort, pour une extension avancée)
Points clés de visualisation : comparaisons et échanges, partition/fusion, construction et réajustement du tas (heapify), différences de comportement et de métriques à taille d’entrée identique.
2) Algorithmes de recherche (Searching)
Démontre le « chemin de recherche » et le déplacement des pointeurs via des tableaux, séquences triées et structures arborescentes :
- Recherche linéaire, recherche binaire, recherche par interpolation
- Skip list (structure à niveaux + processus de recherche)
Et recherche structurée :
- Recherche dans BST/AVL/arbres rouge‑noir
- Recherche dans B‑tree / B+‑tree (utile pour comprendre index et structures disque)
- Recherche par hachage (gestion des collisions : chaînage séparé, adressage ouvert)
3) Structures de données et opérations typiques (Data Structures & Operations)
Lie la « forme de la structure » aux « étapes de l’opération » pour comprendre mécanismes et coûts.
Structures linéaires
- Tableaux : accès, insertion, suppression (avec déplacements)
- Listes chaînées : simple/double/circulaire (insertion, suppression, inversion)
- Piles : push/pop, applications comme la vérification de parenthèses
- Files : file simple, file circulaire, deque, file de priorité
Structures arborescentes
- Parcours d’arbres binaires : préordre/inordre/postordre (récursif vs itératif), parcours en largeur
- BST : insertion/suppression/recherche
- AVL : rotations LL/RR/LR/RL et conditions de déclenchement
- Arbre rouge‑noir : rotations et recolorations lors des insertions/suppressions
- Tas (heap) : insertion, suppression de la racine, heapify
- Trie : insertion/recherche/suppression
- Segment tree / Fenwick tree (BIT) : mise à jour ponctuelle, requête sur intervalle
Bases sur les graphes
- Matrice d’adjacence vs liste d’adjacence
- Graphes non orientés / orientés / pondérés
4) Algorithmes sur graphes (Graph Algorithms)
Les animations nœuds‑arêtes sont très intuitives et idéales pour développer une intuition en théorie des graphes.
Parcours et connectivité
- DFS, BFS, composantes connexes, tri topologique
Plus courts chemins
- Dijkstra, Bellman‑Ford, Floyd‑Warshall, recherche A*
Arbre couvrant minimal
- Prim, Kruskal (avec visualisation Union‑Find)
Avancé : appariement et flot
- Appariement biparti (idée de chemin augmentant)
- Flot maximal (Ford‑Fulkerson / Edmonds‑Karp)
5) Algorithmes sur chaînes (String Algorithms)
Présentés sous forme « texte + pointeurs/fenêtres/tableaux » :
- Appariement naïf, KMP (table des préfixes), Rabin‑Karp (hachage roulant)
- Boyer‑Moore / Horspool
- Construction de tableau de suffixes, (avancé) automate de suffixes / arbre de suffixes
- LCS, plus longue sous‑chaîne commune, distance d’édition (animation de table DP)
6) Récursion et backtracking (Recursion & Backtracking)
Visualise « arbre de récursion + pile d’appels + chemin de retour » :
- Permutations/combinaisons/sous‑ensembles
- N‑reines, Sudoku, chemins dans un labyrinthe, tours de Hanoï
- Mise en évidence des choix et des annulations (undo) lors du backtracking
7) Programmation dynamique (Dynamic Programming)
Affiche des tables/grilles d’états pour montrer précisément « d’où vient chaque transition » :
- Fibonacci (récursif vs mémoïsation vs itératif)
- Sac à dos 0/1, sac à dos complet (unbounded)
- LCS, distance d’édition
- Chemin minimal / chemin de poids maximal sur grille
- Avancé : DP d’intervalle, DP sur arbre
Nouveautés (v1.1)
Added new frequently asked algorithm interview questions.