Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
5Activity
0 of .
Results for:
No results containing your search query
P. 1
Chuong 2 - Do Phuc Tap Tinh Toan Cua Giai Thuat

Chuong 2 - Do Phuc Tap Tinh Toan Cua Giai Thuat

Ratings: (0)|Views: 358 |Likes:
Published by thanhthangbmt

More info:

Published by: thanhthangbmt on Jan 03, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

04/26/2013

pdf

text

original

 
 
u trúc d 
 
li
 
u và gi
i thu
 tCh
 
 ng 2. Phân tích và
 
 ánh giá gi
i thu
 t
Trang 16
Ch
 
ng 2.Phân tích và
ánh giá gi
i thu
t
2.1.

ph
 
c t
p tính toán và các ký pháp

ánh giá2.1.1.Th
 
i gian th
 
c hi
n ch
 
ng trình
M
t ph
 
ng pháp

xác

nh hi
u qu
th
 
i gian th
c hi
n c
a m
t gi
i thu
t là l
ptrình nó và
o l
 
ng th
 
i gian th
c hi
n c
a ho
t

ng trên m
t máy tính xác

nh

iv
 
i t
p h
 
p
 
c ch
n l
c các d
li
u vào.Th
 
i gian th
c hi
n không ch
ph
thu
c vào gi
i thu
t mà còn ph
thu
c vào t
pcác ch
th
c
a máy tính, ch
t l
 
ng c
a máy tính và k 
  
x
o c
a ng
 
i l
p trình. S
thihành c
ng có th

i
u ch
nh

th
c hi
n t
t trên t
p

c bi
t các d
li
u vào
 
c ch
n.Ð
v
 
t qua các tr
 
ng
i này, các nhà khoa h
c máy tính
ã ch
p nh
n tính ph
c t
p c
ath
 
i gian
 
c ti
p c
n nh
m
t s

o l
 
ng c
 
b
n s
th
c thi c
a gi
i thu
t. Thu
t ng
tính hi
u qu
s

c
p

n s

o l
 
ng này và

c bi
t

i v
 
i s
ph
c t
p th
 
i giantrong tr
 
ng h
 
p x
u nh
t.Th
 
i gian th
c hi
n m
t ch
 
ng trình m
t hàm c
a kích th
 
c d
li
u vào, kýhi
u T(n) trong
ó n là kích th
 
c (

l
 
n) c
a d
li
u vào.
Ví d
:
Ch
 
ng trình tính t
ng c
a n s
có th
 
i gian th
c hi
n là T(n) = Cn trong
óC là m
t h
ng s
.Ð
 
n v
c
a T(n) không ph
i là
 
n v

o th
 
i gian bình th
 
ng nh
gi
 
, phút giây...mà th
 
ng
 
c xác

nh b
 
i s
các l
nh
 
c th
c hi
n trong m
t máy tính lý t
 
ng.
Ví d
:
Khi ta nói th
 
i gian th
c hi
n c
a m
t ch
 
ng trình là T(n) = Cn thì cóngh
  
a là ch
 
ng trình
y c
n Cn ch
th
th
c thi.
2.1.2.

ph
 
c t
p c
a gi
i thu
t
Gi
s
ta có hai gi
i thu
t P1 và P2 v
 
i th
 
i gian th
c hi
n t
 
ng
ng là T1(n) =100n
2
(v
 
i t
su
t t
ng là n
2
) và T2(n) = 5n
3
(v
 
i t
su
t t
ng là n
3
). Gi
i thu
t nào s
th
c hi
n nhanh h
 
n? Câu tr
l
 
i ph
thu
c vào kích th
 
c d
li
u vào. V
 
i n < 20 tP2 s
nhanh h
 
n P1 (T2<T1), do h
s
c
a 5n
3
nh
h
 
n h
s
c
a 100n
2
(5<100). Nh
ngkhi n> 20 thì ng
 
c l
i do s
m
c
a 100n
2
nh
h
 
n s
m
c
a 5n
3
(2<3).

ây chúngta ch
nên quan tâm

n tr
 
ng h
 
p n>20 vì khi n<20 thì th
 
i gian th
c hi
n c
a c
P1và P2

u không l
 
n và s
khác bi
t gi
a T1 và T2 là không
áng k 
.Nh
v
y m
t cách h
 
p lý là ta xét t
su
t t
ng c
a hàm th
 
i gian th
c hi
n ch
 
ngtrình thay xét chính b
n thân th
 
i gian th
c hi
n.
Cho m
t hàmT(n),T(n)g
ilàcó

 ph
 
c
 pf(n)n
 
u
n
icách
 
ngC,n
0
saochoT(n)
 
Cf(n)v
 
im
in
 
n
0
(t 
 
clàT(n)có
 
su
 
t
 
nglàf(n))vàkíhi
uT(n)làO(f(n)) (

c là “ôc
af(n)”)
d
T(n)= (n+1)
2
t
su
t t
ngn
2
nT(n)=(n+1)
2
là O(n
2
)
Chúý
: O(C.f(n))=O(f(n))v
 
i C h
ngs
.Ð
cbi
t O(C)=O(1)Nói cách khác

ph
c t
p tính toán c
a gi
i thu
t là m
t hàm ch
n trên c
a hàmth
 
i gian. Vì h
ng nhân t
C trong hàm ch
n trên không có ý ngh
  
a nên ta có th
b
quavì v
y hàm th
hi
n

ph
c t
p có các d
ng th
 
ng g
p sau: log
2
n, n, nlog
2
n, n
2
, n
3
, 2n,n!, n
n
. Ba hàm cu
i cùng ta g
i là
ng hàm m
, các hàm khác g
i là
hàm
 
a th
 
c
. M
t
 
 
u trúc d 
 
li
 
u và gi
i thu
 tCh
 
 ng 2. Phân tích và
 
 ánh giá gi
i thu
 t
Trang 17
gi
i thu
t mà th
 
i gian th
c hi
n có

ph
c t
p là m
t hàm
a th
c thì ch
p nh
n
 
ct
c là có th
cài

t

th
c hi
n, còn các gi
i thu
t có

ph
c t
p hàm m
thì ph
i tìmcách c
i ti
n gi
i thu
t.Vì ký hi
u log
2
nth
 
ngcóm
ttrong

ph
ct
pntrongkhônkh
tàili
uy,tas
dùng
logn
thayth
cho
log
2
n
v
 
im
c
íchduynh
t

chog
ntrongcách vi
t.Khinói

n

ph
ct
pc
agi
ithu
tlàtamu
nnói

nhi
uqu
c
ath
 
igianth
chi
nc
ach
 
ngtrìnhnêntacóth
xemvi
cxác

nhth
 
igianth
chiênc
ach
 
ng trình chính là xác

nh

ph
c t
p c
agi
i thu
t.
2.2.Xác

nh

ph
 
c t
p tính toán c
a gi
i thu
t
Cách tính

ph
c t
p c
a m
t gi
i thu
t b
t k 
là m
t v
n

không
 
n gi
n. Tuynhiên ta có th
tuân theom
t s
nguyên t
c sau:
2.2.1.Quy t
c t
ng
N
u T1(n) và T2(n) là th
 
i gian th
c hi
n c
a hai

n ch
 
ng trình P1 và P2; vàT1(n)=O(f(n)), T2(n)=O(g(n)) thì th
 
i gian th
c hi
n c
a

n hai ch
 
ng trình
ó n
i
ti
 
 p nhau
là T(n)=O(max(f(n),g(n)))
Ch
 
ng minh:
T1(n) = O(f(n)) nên
n1 và c1

T1(n)
c1.f(n) v
 
i
n
n1.T2(n) = O(g(n)) nên
n2 và c2

T2(n)
c2.g(n) v
 
i
n
n2.Ch
n n0 = max(n1, n2) và c = max(c1, c2) ta có:V
 
i
n
n0:T1(n) + T2(n)
c1.f(n) + c2.g(n)
c.f(n) + c.g(n)
c.(f(n) + g(n))
2c.(max(f(n),g(n))).V
y T1(n) + T2(n) = O(max(f(n), g(n))).
Ví d
:
Trong m
t ch
 
ng trình có 3 b
 
c th
c hi
n mà th
 
i gian th
c hi
n t
ng
  
c l
n l
 
t là O(n
2
), O(n
3
) và O(nlog
2
n) thì th
 
i gian th
c hi
n 2 b
 
c

u làO(max (n
2
, n
3
)) = O(n
3
). Khi
ó th
 
i gian th
c hi
n ch
 
ng trình s
O(max(n
3
,nlog
2
n)) = O(n
3
).
2.2.2.Quy t
c nhân
N
u T1(n) và T2(n) là th
 
i gian th
c hi
n c
a hai

n ch
 
ng trình P1và P2 vàT1(n) = O(f(n)), T2(n) = O(g(n)) thì th
 
i gian th
c hi
n c
a

n hai

n ch
 
ng trình
ó
l
ng nhau
là T(n) = O(f(n).g(n))
Ch
 
ng minh:
Th
 
i gian th
c hi
n T1(n) l
n

n ch
 
ng trình P2 s
là T1(n).T2(n). Theo

nhngh
  
a:
c1 và n1

T1(n)
c1(f(n)) v
 
i
n
n1
c2 và n2

T2(n)
c2(g(n)) v
 
i
n
n2V
y v
 
i
n
max(n1, n2) ta có T1(n).T2(n)
c1.c2(g(n).f(n))V
y T(n) = O(f(n).g(n)).
 
 
u trúc d 
 
li
 
u và gi
i thu
 tCh
 
 ng 2. Phân tích và
 
 ánh giá gi
i thu
 t
Trang 18
2.2.3.M
t s
tính ch
t
Theo

nh ngh
  
av

ph
ct
ptínhtoántacóm
t s
tính ch
t:
V
 
i P(n) là m
t
a th
c b
c kthìO(P(n))=O(n
).Vìth
,m
tthu
ttoáncó

ph
ct
pc
p
ath
c, ng
 
i ta th
 
ng kýhi
u là O(n
)
V
 
i a và b là hai c
 
s
tu
ý và f(n) là m
t m d
 
ng thì log
a
f(n) =log
a
b.log
b
f(n). T
c là: O(log
a
f(n)) = O(log
b
f(n)). V
y v
 
i m
t thu
t toán có

ph
c t
p c
p logarit c
a f(n), ng
 
i ta ký hi
u là O(logf(n)) mà không c
n ghi
 
s
c
a logarit.
N
u m
t thu
t toán có

ph
c t
p là h
ng s
, t
c là th
 
i gian th
c hi
n khôngph
thu
c vào kích th
 
c d
li
u vào thì ta ký hi
u

ph
c t
p tính toán c
athu
t toán
ó là O(1).
M
t gi
i thu
t có c
p là các hàm nh
2
n
, n!, n
n
 
c g
i là m
t gi
ithu
t có

ph
c t
p hàm m
. Nh
ng gi
i thu
t nh
v
y trên th
c t
th
 
ng có t
c

r
tch
m. Các gi
i thu
t có c
p là các hàm
a th
c ho
c nh
h
 
n hàm
a th
c thìth
 
ng ch
p nh
n
 
c.
Không ph
i lúc nào m
t gi
i thu
t c
p O(n
2
) c
ng t
t h
 
n gi
i thu
t c
p O(n
3
).B
 
i n
u nh
gi
i thu
t c
p O(n
2
) có th
 
i gian th
c hi
n là 1000n
2
, còn gi
ithu
t c
p O(n
3
) l
i ch
c
n th
 
i gian th
c hi
n là n
3
, thì v
 
i n < 1000, rõ rànggi
i thu
t O(n
3
) t
t h
 
n gi
i thu
t O(n
2
). Trên
ây là xét trên ph
 
ng di
n tínhtoán lýthuy
t

nh ngh
  
a gi
i thu
t này "t
t" h
 
n gi
i thu
t kia, khi ch
nm
t thu
t toán

gi
i m
t bài toán th
c t
ph
i có m
t s
m
m d
o nh
t

nh.
C
ng theo

nh ngh
  
a v

ph
c t
p tính toán:
+
M
t thu
t toán có c
p O(1) c
ng có th
vi
t là O(logn)
+
M
t thu
t toán có c
p O(logn) c
ng có th
vi
t là O(n)
+
M
t thu
t toán có c
p O(n) c
ng có th
vi
t là O(n.logn)
+
M
t thu
t toán có c
p O(n.logn) c
ng có th
vi
t là O(n
2
)
+
M
t thu
t toán có c
p O(n
2
) c
ng có th
vi
t là O(n
3
)
+
M
t thu
t toán có c
p O(n
3
) c
ng có th
vi
t là O(2
n
)V
y

ph
ct
ptínhtoánc
am
tthu
ttoáncónhi
ucáchkýhi
u,thôngth
 
ngng
 
itach
nc
pth
p nh
t có th
,t
c là ch
n ký pháp O(f(n)) v
 
if(n)làm
thàmt
ngch
mnh
ttheon.
 
i
âylàm
ts
hàms
hayng

kýhi
u

ph
ct
ptínhtoánvàb
nggiátr
c
achúng

ti
ntheodõi s
t
ngc
amtheo

i s
n.
Th
 
i gian th
 
c hi
n c
a các thu
t toán có

ph
 
c t
p khác nhau:

Activity (5)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Quốc Phạm liked this
Khanh Nguyen liked this
Cuong Huynh liked this

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->