forked from menault/2026_TD3_DEV51_Qualite_Algo
4babca1f2ec2a8a47d9412ee2a985278bd550684
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>
TD3 — Complexité algorithmique (R5.A.04)
Fichiers
banque.c: le programme à analyser et à optimiserevaluer.sh: vérifie votre solution et mesure son temps d'exécution pour le concours
Démarrage
gcc -O2 banque.c -o banque
time ./banque # notez le temps et l'empreinte
gcc -O0 -g -pg banque.c -o banque_pg
./banque_pg && gprof ./banque_pg gmon.out > profil_avant.txt
Règles
- L'empreinte affichée doit rester
ff68d260a7a58441. - Interdit : modifier les constantes,
alea,generer_transactionsou le format du rapport, écrire les résultats en dur, utiliser des threads ou des bibliothèques externes. - Autorisé : changer les signatures, réorganiser
main, ajouter fonctions et structures, utiliser la bibliothèque standard du C.
Rendu
- Un commit par optimisation.
COMPTE_RENDU.mdà la racine : complexités avant / après de F1 à F10, profils gprof avant / après, justification de chaque optimisation.- Concours :
./evaluer.sh banque.c <votre_nom>vérifie l'empreinte et mesure le temps. La complexité cyclomatique est calculée à la main et vérifiée par l'enseignant.
Description
Languages
C
89.5%
Shell
10.5%