forked from menault/2026_TD3_DEV51_Qualite_Algo
32 lines
1.1 KiB
Markdown
32 lines
1.1 KiB
Markdown
|
|
# TD3 — Complexité algorithmique (R5.A.04)
|
||
|
|
|
||
|
|
## Fichiers
|
||
|
|
|
||
|
|
- `banque.c` : le programme à analyser et à optimiser
|
||
|
|
- `evaluer.sh` : vérifie votre solution et mesure son temps d'exécution pour le concours
|
||
|
|
|
||
|
|
## Démarrage
|
||
|
|
|
||
|
|
```bash
|
||
|
|
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_transactions` ou 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.
|