forked from menault/2026_TD3_DEV51_Qualite_Algo
Optimiser F5 avec Kadane en conservant les égalités
This commit is contained in:
@@ -282,3 +282,20 @@ puis ajout de chaque montant dans `totaux[t[i].jour]`. Le coût passe de
|
||||
La complexité cyclomatique passe de **4 à 3**. Les tests comparent chaque
|
||||
solde à un calcul de référence, y compris aux bornes du tableau, puis
|
||||
vérifient qu'un appel sans transaction remet tous les soldes à zéro.
|
||||
|
||||
### F5 — Meilleure période en un passage (Kadane)
|
||||
|
||||
La somme de la meilleure période se terminant au jour courant est conservée.
|
||||
Si cette somme est négative, le prochain jour démarre une nouvelle période ;
|
||||
sinon, elle est prolongée. Le coût passe de `O(J³)` à **`O(J)`**, avec
|
||||
**`O(1)`** de mémoire auxiliaire, et la complexité cyclomatique de **5 à 4**.
|
||||
|
||||
La somme initiale est celle du premier jour : une série entièrement négative
|
||||
renvoie bien un intervalle non vide. On redémarre uniquement pour une somme
|
||||
strictement négative et on remplace le meilleur résultat uniquement pour
|
||||
une somme strictement supérieure. Une somme nulle conserve ainsi le début
|
||||
le plus ancien ; à égalité, le premier début puis la première fin sont
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user