Optimiser F2 avec un tableau de clients rencontrés

This commit is contained in:
rabot
2026-10-21 11:11:56 +02:00
parent b6352e063b
commit 2b34b35f2b
3 changed files with 30 additions and 8 deletions
+10
View File
@@ -254,3 +254,13 @@ La complexité cyclomatique de F1 passe de **6 à 3** ; les auxiliaires
et **M = 6**. Les tests comparent le résultat à un tri de référence pour
les tailles 0 à 128, des doublons, des entrées déjà triées ou inversées,
et les bornes des types `int` et `long`.
### F2 — Tableau des clients rencontrés
Un tableau de `C` indicateurs, initialisé à zéro, remplace la recherche
dans les transactions précédentes. Une transaction marque son client à son
premier passage et incrémente le compteur. Le coût devient **`O(n + C)`**
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.