forked from menault/2026_TD3_DEV51_Qualite_Algo
Optimiser F6 avec un index direct par identifiant
This commit is contained in:
@@ -299,3 +299,17 @@ conservés comme dans les boucles initiales. Les **97 655 séries** de longueur
|
||||
1 à 7 à valeurs dans `[-2, 2]` sont comparées à la version cubique, sur la
|
||||
somme et sur les deux bornes : elles couvrent notamment les zéros, les
|
||||
égalités et les séries entièrement négatives.
|
||||
|
||||
### F6 — Index direct par identifiant
|
||||
|
||||
Les identifiants sont une permutation de `[0, n - 1]`. Un index de pointeurs
|
||||
est construit en **`O(n)`** avant la boucle des requêtes. Chaque recherche
|
||||
contrôle les bornes et renvoie `index_ids[id]` en **`O(1)`**, au lieu de
|
||||
parcourir les transactions en `O(n)`. Le coût des `Q` requêtes, construction
|
||||
comprise, devient **`O(n + Q)`**, avec `O(n)` de mémoire supplémentaire.
|
||||
|
||||
Les recherches ont toutes lieu avant le tri des transactions : un déplacement
|
||||
des transactions imposerait de reconstruire l'index. F6 garde **M = 3** et
|
||||
`indexer_par_id` a **M = 2**. Les tests comparent les pointeurs renvoyés
|
||||
à une recherche linéaire sur des identifiants permutés pour les tailles
|
||||
1 à 128, et vérifient les recherches hors bornes et dans un tableau vide.
|
||||
|
||||
Reference in New Issue
Block a user