You are on page 1of 17

ph c t p thu t ton

L S Vinh B mn Khoa H c My Tnh Khoa CNTT i H c Cng Ngh - HQGHN Email: vinhioi@yahoo.com

Cc v n
1. 2.

lin quan

n thu t ton

M tv n

c gi i quy t b i nhi u thu t ton khc nhau

i v i m t thu t ton:
ph c t p v khng gian (dung l ng b nh s d ng) ph c t p v th i gian ch y

3.

ph c t p v th i gian ch y
K nng l p trnh Chng trnh d ch T c th c hi n cc php ton trn my tnh D li u vo

Th i gian ch y chng trnh : 10s ???

ph c t p thu t ton
1. Th i gian ch y 1 thu t ton ph thu c vo c (size) c a d li u vo
Tm xem 1 i t ng c trong danh sch N ph n t hay khng? S p x p tng d n dy s g m N s Bi ton ng i bn hng c n thm N a i m

2.

Trong cc d li u vo cng m t c (N), th i gian ch y c a thu t ton cng thay i


V d : Tm xem 1 i t ng c trong danh sch N ph n t hay khng? i t ng n m u danh sach i t ng n m gi a danh sach i t ng n m cu i danh sch

ph c t p thu t ton
1. Th i gian ch y trong tr ng h p x u nh t (worse-case running time) Th i gian ch y l n nh t c a thu t ton trn t t c cc d li u cng c Th i gian ch y trung bnh L trung bnh c ng th i gian ch y trn t t c cc b d li u cng c . Th i gian ch y trong tr ng h p t t nh t (best-case running time) Th i gian ch y t nh t c a thu t ton trn t t c cc d li u cng c

2.

3.

ph c t p thu t ton
nh gi th i gian ch y thu t ton: T(n) = s l ng php ton s c p c n ph i th c hi n (php ton s h c, php ton logic, php ton so snh). M i php ton s c p c th c hi n trong m t kho ng th i gian c nh.

Quan tm

nt c

tng c a hm T(n) .

V d : T(n) = 2n2 + 3n + 10

Bi u di n th i gian ch y b i k hi u O
nh ngha. Gi s f(n) v g(n) l cc hm th c khng m c a i s nguyn khng m n. Ta ni f(n) l l n c a g(n) v vi t l f(n) = O( g(n) ) n u t n t i cc h ng s dng c* v n0 sao cho f(n) <= c*g(n) v i m i n >= n0.

Bi u di n th i gian ch y b i k hi u O
V d . Gi s f(n) = 5n3 + 2n2 + 13n + 6 , ta c: f(n) = 5n3 + 2n2 + 13n + 6 <= 5n3 + 2n3 + 13n3 + 6n3 = 26n3 f(n) = O(n3) T ng qut n u f(n) l m t a th c b c k c a n: f(n) = aknk + ak-1nk-1 + ... + a1n + a0 th f(n) = O(nk)

Bi u di n th i gian ch y b i k hi u O

K hi u l n Tn g i O(1) O(logn) O(n) O(nlogn) O(n2) O(n3) O(2n) h ng logarit tuy n tnh nlogn bnh phng l p phng m

Th i gian ch y c a cc l nh
1. L nh gn X = <bi u th c> Th i gian ch y c a l nh gn b ng th i gian th c hi n bi u th c L nh l a chon if ( i u ki n) l nh 1 else l nh 2

2.

T0(n) T1(n) T2(n)

Th i gian: T0(n) + max (T1(n), T2(n))

Th i gian ch y c a cc l nh
3. L nh l p: for, while, do-while V d :

X (n)

(T (n ) + T (n ))
0 i i =1
X(n): S vng l p T0(n): i u ki n l p Ti(n): Th i gian th c hi n vng l p th i

Th i gian ch y c a cc l nh
4. Phn tch cc hm quy

V d 2
Thu t ton t o ra ma tr n n v A c p n. (1) for (i = 0 ; i < n ; i++) (2) for (j = 0 ; j < n ; j++) (3) A[i][j] = 0; (4) for (i = 0 ; i < n ; i++) (5) A[i][i] = 1; ph c t p:

V d 2
Thu t ton t o ra ma tr n n v A c p n. (1) for (i = 0 ; i < n ; i++) (2) for (j = 0 ; j < n ; j++) (3) if (i == j) (4) A[i][j] = 1; (5) Else (6) A[i][j] = 0; ph c t p:

V d 3
1) sum = 0; 2) for ( i = 0; i < n; i + +) 3) for ( j = i + 1; j < = n; j + +) 4) for ( k = 1; k < 10; k + +) 5) sum = sum + i * j * k ;

ph c t p:

V d 3
1) sum = 0; 2) for ( i = 0; i < n; i + +) 3) for ( j = i + 1; j < = n; j + +) 4) for ( k = 1; k < m; k + +) { 5) x = 2*y; 6) sum = sum + i * j * k ; 7) } ph c t p:

3
1. for (i = 0; I < n; I ++) 2. for (j = 0; j < m; j ++) { 3. int x = 0; 4. for (k = 0; k < n; k ++) 5. x = x + k; 6. for (k = 0; k < m; k++) 7. x = x +k; 8. }

V d 4
Phn tch ph c t p thu t ton c a t t c cc php ton trn ki u danh d li u danh sch c ci t b ng m ng v danh sch lin k t

You might also like