Complexité spatiale
Utilisation mémoire relative à la taille d'entrée (Big O).
Space complexity describes how an algorithm's memory usage grows with input size (n). Like time complexity, it uses Big O notation.
Space complexity = Input space + Auxiliary space
- Input space: Memory for the input itself
- Auxiliary space: Extra memory used during execution
Common space complexities:
- O(1) Constant: Fixed extra memory (in-place algorithms)
- O(n) Linear: Memory proportional to input
- O(log n) Logarithmic: Recursion depth in binary search
- O(n²) Quadratic: 2D matrix storage
graph LR
Center["Complexité spatiale"]:::main
Pre_algorithm["algorithm"]:::pre --> Center
click Pre_algorithm "/terms/algorithm"
Rel_time_complexity["time-complexity"]:::related -.-> Center
click Rel_time_complexity "/terms/time-complexity"
Rel_asymptotic_notations["asymptotic-notations"]:::related -.-> Center
click Rel_asymptotic_notations "/terms/asymptotic-notations"
Rel_big_o_notation["big-o-notation"]:::related -.-> Center
click Rel_big_o_notation "/terms/big-o-notation"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Explique-moi comme si j'avais 5 ans
Imagine que tu fais tes valises pour un voyage. La complexité spatiale, c'est comme demander : 'Combien de valises me faut-il si j'emmène plus de choses ?' Certaines méthodes n'ont besoin que d'un seul sac (O(1)), d'autres ont besoin d'un sac pour chaque objet (O(n)).
🤓 Expert Deep Dive
L'optimisation de récursion terminale convertit O(n) d'espace pile en O(1). Les compromis espace-temps sont fondamentaux : les tables de hachage échangent O(n) d'espace contre O(1) de recherche. Les algorithmes de streaming traitent les données en O(1) d'espace.