Commit Graph

7 Commits

Author SHA1 Message Date
Ryad Mehiri d913c2266f F6 : index des transactions par id (O(n) par requête → O(1))
Chaque requête parcourait le tableau jusqu'à trouver l'id : 30 000
requêtes × 15 000 comparaisons en moyenne. Les id formant une
permutation de 0 à n-1, un tableau position[id] construit une fois en
O(n) donne chaque transaction en O(1). Le test r != NULL de main,
devenu impossible, est retiré.

Temps (-O2) : 1,08 s → 0,92 s. Empreinte inchangée (ff68d260a7a58441).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 10:54:49 +02:00
Ryad Mehiri 4babca1f2e F10 : construire le rapport en O(L) au total
ajouter_ligne recalculait la longueur du rapport à chaque ligne : 6 017
parcours d'un texte qui grandit jusqu'à la taille finale L, soit
O(L × nombre de lignes). ajouter_ligne reçoit désormais la position de
fin et renvoie la nouvelle : chaque caractère n'est écrit qu'une fois.
La fonction longueur n'est plus utilisée et disparaît.

Profil -O0 : longueur (1,74 s) disparaît. En -O2, le gain reste dans le
bruit de mesure. Empreinte inchangée (ff68d260a7a58441).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 10:54:13 +02:00
Ryad Mehiri d19085ed45 F8 : rendu de monnaie par programmation dynamique (O(S × k))
La récursion naïve recalculait les mêmes sous-problèmes : 266 723 739
appels pour rendre 400 centimes avec 8 pièces. Le tableau facons[0..S],
mis à jour pièce par pièce, compte les mêmes combinaisons en S × k
additions (3 200 ici).

Temps (-O2) : 1,17 s → 1,00 s. En -O0 -pg, le surcoût de _mcount
(16,2 s) disparaît avec les appels récursifs. Empreinte inchangée
(ff68d260a7a58441).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 10:53:24 +02:00
Ryad Mehiri cb7857cd43 F1 : trier les transactions avec qsort (O(n²) → O(n log n))
Le tri à bulles faisait n(n-1)/2 = 450 millions de comparaisons pour
30 000 transactions. qsort trie en O(n log n) avec une fonction de
comparaison (montant, puis id). Les id étant distincts, l'ordre est
total et le résultat identique malgré un tri non stable.

Temps (-O2) : 3,05 s → 1,17 s. Empreinte inchangée (ff68d260a7a58441).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 10:42:34 +02:00
Ryad Mehiri 3a29495281 Profil initial (gprof) de banque.c avant optimisation
Version d'origine : 3,05 s en -O2 (médiane de 5 exécutions), empreinte
ff68d260a7a58441.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 10:41:44 +02:00
Maxime Menault e337ed5236 Téléverser les fichiers vers "/" 2026-10-21 09:52:24 +02:00
Maxime Menault c58ffc2ea6 Téléverser les fichiers vers "/" 2026-10-21 08:17:46 +02:00