Professional Documents
Culture Documents
THUT TON
toannv@uit.edu.vn
nh gi thut ton
Gii quyt mt bi ton
M hnh ha
Lp chng trnh
nh gi thut ton
Cho n l mt s nguyn dng, mng a l d liu nhp. Xem thut ton sau y, gi s
php gn v php so snh ng vai tr ch yu trong thi gian chy ca thut
ton.
1.
i:=0;
2.
while i<n do
3.
a[i]:=(2- i mod 5) *( 1 + a[i]*a[i]);
4.
i:=i+1;
5.
endw;
6.
i:=0;
7.
while i<n-1 do
8.
if a[i]>0 then
9.
j:=i+1;
10.
while j<n do
11.
if a[j]>0 then
12.
if a[i]<a[j] then
13.
t:=a[i];
a[i]:=a[j];
a[j]:=t;
14.
endif
15.
endif
16.
j:=j+1;
17.
endw;
18.
endif
19.
i:=i+1;
20.
Endw;
lng
Slng
lng
S
S
1200
100000
10000000
1000
80000
8000000
800
60000
6000000
600
S php
Gn
Series1
Series1
S php
So Snh
Series2
Series2
40000
4000000
400
20000
2000000
200
0 0 0
200
0 0 0 10100
1000 20
2000
nnn
300
30
3000
400
40
4000
500
50
5000
K hiu O
O(g(n)) = {f(n): tn ti hng s c v n0 :
0 f(n)< c g(n) vi mi n n0}
V d:
f(n) = 20n 2 +5n
g(n) = n 2
0(g(n)) = f(n )
K hiu O
phc tp hng s, O(1). S php tnh/thi gian chy/dung
Bi tp
Chng minh
log(n ) = O(n)
2n+1 = O(3n/n)
Hng dn
Qui np
Chng minh
C : log(n ) = O(n)
log(n) < c.n
Chng minh : log(n+1) < c.(n+1)
--log(n+1) log(2n) = log(2) + log(n)
1 + n = n +1
XONG
Chng minh
2n+1 = O(3n/n)
C : 2n+1 < c.3n/n
C/m: 2n+2
= 2. 2n+1
2. 3n/(n)
=
3.3n/(n+1) =3n+1/(n+1)
Chng minh
2n+1 = O(3n/n)
C : 2n+1 < c.3n/n
V t nhin chng ta c:
2/(n) 3/(n+1) vi n>=2 (*)
C/m:
2n+2
= 2. 2n+1 3.n/(n+1). 2n+1
3.n/(n+1). 3n/n
= 3n+1/(n+1)
(do *)
K hiu
(g(n)) = {f(n): tn ti hng s c >0 :
f(n)> c g(n)}
K hiu
f(n) = O(g(n)) v f(n) = (g(n))
Qui tc cng
nu
f1(n) = O(g1(n))
f2(n) = O(g2(n))
th
f1(n) + f2(n) = O( g1(n) + g2(n) )
Chng minh ?
p dng: khi 2 on chng trnh thc hin
ni tip nhau.
Qui tc nhn
nu
f1(n) = O(g1(n))
f2(n) = O(g2(n))
th
f1(n) * f2(n) = O( g1(n) * g2(n) )
Chng minh ?
p dng: khi 2 on chng trnh thc hin
lng vo nhau.
phc tp ca cc lnh
thng thng
Gn, gi hm .. : O(1)
If : max thi gian thc hin 2 nhnh
V d
Hm nhn
Hm Bubble Sort
Bi tp v nh
ProblemOfAlgorithms.pdf
Introduction.to.Algorithms,.Second.Edition.c
hm