Complexité algorithmique — 00 — Le code qui marche en dev et meurt en prod
Pourquoi un code rapide sur 100 lignes devient inutilisable sur 1 million. Introduction à la complexité algorithmique comme dette technique qui dort.
14 articles sur le thème "complexité".
Pourquoi un code rapide sur 100 lignes devient inutilisable sur 1 million. Introduction à la complexité algorithmique comme dette technique qui dort.
Les deux tris quadratiques fondamentaux : sélection et insertion. Principe, code en TypeScript et Python, complexité, stabilité, et pourquoi l'insertion est meilleure.
Les deux façons de stocker un graphe en mémoire : liste d'adjacence et matrice d'adjacence. Leurs coûts en temps et en mémoire, et comment choisir selon la densité.
Tous les langages ont un tri intégré. Pourquoi comprendre les algorithmes de tri reste utile : choisir, déboguer, et raisonner sur la complexité.
Une méthode pour choisir la structure de données adaptée à un problème réel : identifier l'opération chaude, puis sélectionner array, Set, Map ou structure triée.
Le tri à bulles : principe, code, pourquoi il est O(n²), et pourquoi il sert surtout d'exemple pédagogique plutôt que d'outil de production.
Comprendre O(1), O(log n), O(n), O(n log n), O(n²) et O(2ⁿ) avec des exemples de code et une intuition de la vitesse de croissance.
Les erreurs de complexité les plus fréquentes en revue de code : includes dans une boucle, boucles imbriquées cachées, concaténation en O(n²), recalculs inutiles.
La mémoire a un coût, comme le temps. Mesurer la complexité spatiale, comprendre le trade-off temps/espace, et savoir quand échanger l'un contre l'autre.
Introduction aux techniques de recherche sur tableaux : pourquoi le parcours naïf est souvent un O(n²) évitable, et les patterns qui le remplacent.
Déterminer la complexité d'un code : compter les opérations, garder le terme dominant, ignorer les constantes, et distinguer cas pire, moyen et meilleur.
Array, liste chaînée, hashmap, Set, arbre équilibré : leurs coûts en Big-O pour l'accès, la recherche, l'insertion et la suppression, comparés dans un tableau.
Introduction à la série structures de données : pourquoi chaque structure est un compromis, ce que la série construit, et le lien avec la complexité algorithmique.
Mesurer la complexité du code, la réduire, et comprendre son impact sur la testabilité