2016-09-15 3 views

Répondre

0

Une preuve mathématique:

Si nous voulons la preuve que f (n) * g (n) est O (n), nous devons montrer que existe n0 et constant c tels que:

f(n)*g(n) < c*n for every n>n0 

nous avons en tant que f (n) est O (n) ce qui signifie qu'il y a c1, n1:

f(n)<c1*n for every n>n1 (1) 

et g il y c2, n2:

g(n)<c2 for every n>n2 (2) 

Maintenant, nous avons que, pour chaque n>max(n1,n2) (max parce que nous voulons que les deux inégalités pour f et g à tenir):

f(n)g(n)<c1*c2*n (by multiplying (1),(2)) 

donc nous avons prouvé qu'il ya c=c1*c2 and n0=max(n1,n2) comme le dessous de l'inégalité est vérifiée:

f(n)g(n)<c*n -> f(n)*g(n) is O(n) for every n>n0. 
0

O (n) est la complexité temporelle. Lorsque nous multiplions f (n) et g (n). La complexité temporelle supérieure l'est donc, la complexité de l'algorithme est O (n).

+0

pouvez-vous s'il vous plaît prouver? Je dois le prouver pour cette question. C'est-à-dire: – VVSTITAN

+0

puisque f (n) est O (1), on sait qu'il existe un nombre réel n> n0 tel que f (n) n0 'tel que g (n) n0 "tel que f (n) * g (n) VVSTITAN