Structures de Données et Algorithmes Examen 1 Flashcards
T(N) :
(déf: le côut d’un algorithme)
- ça represente le temps d’execution d’un “run” quelconque
terme dominant :
une terme est dite dominant si, pour N suffisemment grand, il explique la fonction T(N)
ex:
aN^3 + log(N)
aN^3 est le terme dominant car, à N = 999999999999999, log(N) est négligable.
Pourquoi on spécifie “pour N suffisemment grand” explique avec l’exemple N^2 vs 2N
N^2 = 1, 4, 9
2N = 2, 4, 6
si N < 2 2N est supérieur
si N > 2, N^2 est supérieur
so c’est important de spécifier
O(N) :
Pire cas d’un algorithme en terme de temps d’execution.
(Maximum execution time for a given algorithm)
(Upper bound)
λ(N)
meilleurcas d’un algorithme en terme de temps d’execution.
(Minimum execution time for a given algorithm)
(Lower bound)
f(N) = N^2
g(N) = N^3
O() = ?
O(N) = O(max( f(N) , g(N)) )
donc,
O(N) = O(max( N^2 , N^3) )
O(N) = O(N^3) ou O(g(N))
f(N) = N^2
g(N) = N
O() = ?
O() = O(max( f(N) , g(N)) )
donc,
O() = O(max( N^2 , N) )
O() = O(N^2) ou O(f(N))
boucle O( g(N) )
{
bloc O( f(N) )
}
O() = ?
O( f(N) ⋅ g(N) )
boucle O( a(N) )
{
bloc O( b(N) )
bloc O( c(N) ) }
O() = ?
O( a(N) ) ⋅ O( max( b(N) , c(N) ) )
ϴ(N) :
si O( f(N) ) et λ( f(N) ) ont la même ordre. On le désigne, ϴ(N).
sum of i :
n(n + 1)
_______
2