Optimiser F3 par accumulation directe des soldes clients

This commit is contained in:
rabot
2026-10-21 11:12:21 +02:00
parent 2b34b35f2b
commit 14c18a3975
3 changed files with 35 additions and 5 deletions
+9
View File
@@ -264,3 +264,12 @@ au lieu de `O(n²)`, avec `O(C)` de mémoire. Les identifiants de clients sont
densement compris entre 0 et `C - 1`, comme le garantit le générateur.
La complexité cyclomatique passe de **5 à 3**. Les tests couvrent l'absence
de transactions, les doublons, les identifiants extrêmes et tous les clients.
### F3 — Accumulation directe par client
Après la remise à zéro des `C` soldes, un seul parcours des transactions
ajoute chaque montant dans `totaux[t[i].client]`. Les deux boucles sont
successives : **`O(n + C)`** au lieu de `O(n × C)`, avec `O(1)` de mémoire
auxiliaire en dehors du tableau de sortie. La complexité cyclomatique passe
de **4 à 3**. Les tests vérifient les clients sans transaction, les débits,
les crédits, les annulations et la réinitialisation entre deux appels.