Salut,
Je débute dans l'algo et je suis actuellement un tuto' de developpez (initiation à l'algorithmique), et il y a un exercice qui m'intrigue :
fonction decalage (a:entier) : entier
Si a=0 Alors :
retourner 0
FinSi
TantQue a est pair faire :
a <- a/2
FinTantQue
retourner a
Dans le pire des cas, la complexité est constante pour tout entier impair, et est égale à log(a) pour toute puissance de 2.
Mais pour la complexité en temps moyenne, on observe sur les entiers de taille 3 (représentés en binaire):
a nbre d'instructions
001 0
010 1
011 0
100 2
101 0
110 1
111 0
Ainsi, le nombre d'executions de a/2 sur des entiers de taille 3 égale à 4/7.
Exercice :
Prouver que la complexité en moyenne dedecalage est constante.
---------------------------
Seulement voilà, en faisant la même chose pour des entiers de taille 2 et 4 je trouve respectivement 1/3 et 11/15. Et (1/3)=/=(4/7)=/=(11/15)... Quelqu'un pour éclaircir ce petit problème à un débutant ? :D Peut-être que la différence entre 1/3 et 4/7 et 11/15 est petite donc n'est pas prise en compte, mais peut-être que je me trompe et que j'ai même pas saisi la notion de complexité... Merci d'avance en tout cas. 