forked from menault/2026_TD3_DEV51_Qualite_Algo
opti rechercher_par_id
This commit is contained in:
@@ -94,3 +94,16 @@ Le tri à bulles de `trier_par_montant` effectue O(n²) comparaisons. Il est rem
|
||||
|
||||
Sur ces mesures, le temps réel médian baisse d'environ **59 %** (la version optimisée est environ **2,4 fois plus rapide**). Les valeurs affichées par le programme restent identiques et l'empreinte confirme que le rapport n'a pas changé.
|
||||
|
||||
## 4. Optimiser F6 : rechercher une transaction par identifiant
|
||||
|
||||
La recherche initiale parcourait le tableau jusqu'à trouver l'identifiant demandé, soit O(n) par requête et O(Qn) pour Q requêtes. Or les identifiants générés forment une permutation de 0 à n−1. Le programme construit donc une fois un tableau d'index où `index[id]` pointe vers la transaction correspondante. Chaque recherche vérifie que l'identifiant est dans les limites, puis renvoie directement `index[id]` en O(1). La construction coûte O(n), les Q recherches coûtent O(Q), soit O(n + Q) au total. L'index est libéré après les requêtes, avant le tri qui déplace les transactions.
|
||||
|
||||
| Mesure | Avant : recherche linéaire | Après : index |
|
||||
| --- | ---: | ---: |
|
||||
| Temps réel médian | 0,97 s | 0,80 s |
|
||||
| Temps utilisateur médian | 0,97 s | 0,80 s |
|
||||
| Temps système médian | 0,00 s | 0,00 s |
|
||||
| Empreinte | `ff68d260a7a58441` | `ff68d260a7a58441` |
|
||||
|
||||
Le temps réel médian baisse d'environ **18 %** (environ **1,2 fois plus rapide**). L'empreinte identique confirme que les recherches renvoient les mêmes transactions et que le rapport conserve son contenu.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user