Salut,
En relisant mon cours sur les techniques de démonstration je me suis rendu compte qu'on aurait pu utiliser l'induction mathématique généralisée.
je rappelle que la recurrence était
base de l'induction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 T(n) = T(n/2 + racine(n)) + n (avec n > 16) et que T(n) = constante sinon et qu'il fallait demontrer que T(n) = O(n) pour tout n >= 0
donc pour n de [0 à 16], T(n) = O(n) = constante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 pour n = 0, T(0) = O(0) qui est bien une constante pour n = 1, T(1) = O(1) qui est bien une constante . pour n = 16, T(16) = O(16) qui est bien une constante
Hypothèse d'induction: pour tout n > 16, T(n/2 + racine(n)) = O(n/2 + racine(n))
donc T(n) = O(n) pour n > 16
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 on a donc: T(n/2 + racine(n)) <= c(n/2 + racine(n)) ( c > 0) T(n/2 + racine(n)) <= (cn)/2 + c*racine(n) T(n/2 + racine(n)) + n <= (cn)/2 + c*racine(n) + n T(n) <= (cn)/2 + c*racine(n) + n T(n) <= cn pour tout c > 0
T(n) = O(n) pour n<=16 et T(n) = O(n) pour n > 16
=> T(n) = O(n) pour tout n
![]()
Partager