Download - Bai 1 Analysis
-
7/23/2019 Bai 1 Analysis
1/47
PHN TCH GII THUT
Bi ging Cu trc dliu v Gii thut
1
-
7/23/2019 Bai 1 Analysis
2/47
Gii thiu mn hc
Phn tch gii thut
Cu trc dliu v Gii thut
-
7/23/2019 Bai 1 Analysis
3/47
Gii thiu mn hc Trng tm ca mn hc:Cc cu trc dliu v gii thut c lin quan Tnh ng n v phc tp (thi gian v khng gian)
Yu cu:Nhp mn v Kthut lp trnh: hm, mng, cu trc,
qui, con tr
Ngn nglp trnh: C/C++
Song song: Lp trnh hng i tng
3
-
7/23/2019 Bai 1 Analysis
4/47
Tchc mn hc Tnh im (thang im 10):n: 40% Thi vit cui k(m): 60%
im cng (trnh by n): 30%
Trao i thng tin: Trang web mn hc
Email: [email protected]
Gio vin hng dn
4
-
7/23/2019 Bai 1 Analysis
5/47
Gii thiu CTDL & GT Pht biu ni ting:
Chng trnh = Gii thut + Cu trc dliu. Tt cchng ta u lp trnh; do c lm quen
vi gii thut v cu trc dliu.
C lta khng thy nhng vn ny mt cch ringbit; M ta thy nhng cu trc dliu di dng nhng
thnh phn lp trnh n gin (c cung cp bi
STLthvin mu chun). Tuy nhin, cu trc dliu khc bit so vi gii thut,
v c vai tr rt quan trng.
5
-
7/23/2019 Bai 1 Analysis
6/47
Mc tiu Mc tiu chnh ca mn hc ny l cung cp mt
suy nghc hthng vgii thut v cu trc dliu. Hai nguyn l nh hng vmn hc: tnh tru
tng v phn tch hnh thc. Tnh tru tng: Tp trung trn cc chc
ng dng rng ri trn nhiu bi ton khc nhau. Phn tch: Sdng mt cch hnh thc so snh
hai i tng (cu trc dliu hay gii thut). Cth, ta squa tm vtnh ng n, v cc
gii hn vthi gian v khng gian (bnh) trongtrng hp xu nht.
6
-
7/23/2019 Bai 1 Analysis
7/47
Khi qut mn hc Phn tch gii thut
Kiu dliu tru tng (ADT) Danh sch lin kt
Stack/Queue Bm/Bng bm
Cu trc cy
Cc gii thut sp xp Nn/gii nn
7
-
7/23/2019 Bai 1 Analysis
8/47
Gii thut v Cu trc dliu
Phn tch gii thut Cc k hiu tim cn BigO
Cc quy tc phn tch gii thut
Mt sv d
Phn tch gii thut
-
7/23/2019 Bai 1 Analysis
9/47
Phn tch gii thut Cc nn tng ca phn tch gii thut v cu trc d
liu. Phn tch: Lm sao don hiu quca mt gii thut
Mt gii thut thc hin tt n mc no Lm sao so snh cc gii thut khc nhau cho 1 bi ton
Cu trc dliu Lm sao lu tr, truy xut v qun l dliu hiu qu
Cc cu trc dliu nh hng n hiu quca gii thut
9
-
7/23/2019 Bai 1 Analysis
10/47
V d
cho gi
i thut
int factorial (int n) {
if (n
-
7/23/2019 Bai 1 Analysis
11/47
V dcc gii thut ni ting Tnh bi schung ca Euclid
Tm cn bc hai ca Newton Bin i Fourier nhanh
Nn (Huffman, Lempel-Ziv, GIF, MPEG)
M ho DES, RSA Gii thut n gin cho lp trnh tuyn tnh
Gii thut tm ng i ngn nht(Dijkstra, Bellman-Ford)
M ho sa li(CDs, DVDs) Kim sot tc nghn TCP, nh tuyn IP
So khp mu (Hnh hc)
ng ctm kim (Search Engines)
11
-
7/23/2019 Bai 1 Analysis
12/47
Vai tr ca gii thut trong thgii
hin i Lng dliu khng l Thng mi in t(Amazon, Ebay) Lu thng trn mng (theo di, tnh tin dch vvin
thng)
Giao dch csdliu (Mua bn, kim k) Cc o trong khoa hc (khng gian, a cht)
Mng sensor, cc thRFID
Sinh tin hc (genome, ngn hng protein)
12
-
7/23/2019 Bai 1 Analysis
13/47
Bi ton Chui con Ln nht Cho mt chui snguyn A1, A2, , An, tm gi trln nht
c thca chui con Ai, , Aj. Sc thm.
Ta cn tm mt on lin tc vi tng ln nht.
V d: -2, 11, -4, 13, -5, -2 Kt qul 20 (chui con tA2 n A4).
Chng ta c 4 gii thut khc nhau, vi phc tp vmtthi gian l O(n3), O(n2), O(n log n), and O(n).
Vi n = 106, gii thut 1 cn > 10 nm; gii thut 4 chcnmt phn trm giy!
13
-
7/23/2019 Bai 1 Analysis
14/47
int maxSum = 0;
for( int i=0; i
-
7/23/2019 Bai 1 Analysis
15/47
Gii thut 2 tng: Vi tng ti n j-1, ta c thtnh tng ti n j
trong khong thi gian hng s. Gii thut ny bqua vng lp trong, v gim thi gian chy
xung O(n2).
into maxSum = 0;
for( int i = 0; i < n; i++ )
int thisSum = 0;
for( int j = i; j < n; j++ )
{ thisSum += a[ j ];
if( thisSum > maxSum )
maxSum = thisSum;
}
return maxSum;
15
-
7/23/2019 Bai 1 Analysis
16/47
Gii thut 3 Gii thut ny dng cch chia tr.
Gista chia i chui ban u ti im gia. Chui con ln nht hoc nm hon ton na bn tri, hon
ton na bn phi, hoc ct ngang im gia.
V d: na tri | na phi
4 -3 5 -2 | -1 2 6 -2
Ln nht bn tri l 6 (A1 n A3); ln nht bn phi l 8(A6 n A7). Nhng ct ngang im gia ln nht l 11 (A1n A7).
16
-
7/23/2019 Bai 1 Analysis
17/47
V d:
na tri | na phi4 -3 5 -2 | -1 2 6 -2 Chui con ln nht hai bn c thtm c bng qui. Lm cch no tm c chui con ln nht ct ngang im
gia? im lu : Bn tri ca chui ct ngang im gia l chui con ln
nht kt thc -2. Bn phi l chui con ln nht bt u -1.
C thtnh chui ny bng 1 dng qut tuyn tnh trong thi
gian O(n).
Gii thut 3 (tt)17
-
7/23/2019 Bai 1 Analysis
18/47
Gii thut 3: Phn tch
Cch tt nht phn tch chia trl hi qui:
T(1) = 1
T(n) = 2T(n/2) + O(n)
Kt quca biu thc hi qui: T(n) = O(n log n).
18
-
7/23/2019 Bai 1 Analysis
19/47
Gii thut 4
phc tp thi gian r rng l O(n)
Nhng liu gii thut trn c chnh xc? (Cn chng minh)
2, 3, -2, 1, -5, 4, 1, -3, 4, -1, 2int maxSum = 0, thisSum = 0;
for( int j = 0; j < n; j++ )
{
thisSum += a[j];
if ( thisSum > maxSum )
maxSum = thisSum;
else if ( thisSum < 0 )
thisSum = 0;
}
return maxSum;
}
19
-
7/23/2019 Bai 1 Analysis
20/47
Gii thut 4: chng minh Chui con ln nht khng thbt u hay kt thc ti Ai m.
Tng qut hn, chui con ln nht khng thc phn u vitng m.
Vd: -2 11 -4 13 -5 -2
Do , bt ckhi no thy Ai n Aj c tng < 0, tng c thtin i n j+1
CM: Gisj l chsu tin sau i m tng < 0
Chui con ln nht khng thbt u tbt kvtr p nmgia i v j. V Ain Ap-1 dng, do bt u ti stthn.
20
-
7/23/2019 Bai 1 Analysis
21/47
Gii thut 4int maxSum = 0, thisSum = 0;
for( int j = 0; j < n; j++ ){
thisSum += a[j];
if ( thisSum > maxSum )
maxSum = thisSum;
else if ( thisSum < 0 )
thisSum = 0;
}
return maxSum
Gii thutt li gi tr khi phnu < 0. Ngcli, n tnh tng mi v cp nht maxSum trongmt lt.
21
-
7/23/2019 Bai 1 Analysis
22/47
Ti sao c
n Cc Gii thut Hi
u qu?
GisN = 106
Mt PC c thc/xl N mu tin trong 1 giy. Nhng nu gii thut thc hin N*N php tnh, n cn 1 triu
giy = 11 ngy!!!
Bi ton Ngi bn hng (TSP) i qua 100 thnh ph. Mt siu my tnh c thkim tra 100 tvng/giy vn cn
10100 nm!
Cc gii thut phn tch tha snhanh c thbcc m hnhm ho. Nghin cu cc gii thut gip xc nh di mho an ton. (> 100 chs)
22
-
7/23/2019 Bai 1 Analysis
23/47
Lm cch no nh gi hiu
qugii thut? o no dng nh gi cc gii thut?
di ca chng trnh (s dng lnh)D lp trnh (pht hin li, qun l)
B nh
Thi gian thc thi
Thi gian thc thi l tiu chun quytnh.C th lng gic v d dng so snh
Thng lyu t c chai quan trng
23
-
7/23/2019 Bai 1 Analysis
24/47
Tnh tru tng Mt gii thut c ththc thi khc nhau tuthuc vo:
nn tng phn cng (PC, Cray, Sun) ngn nglp trnh (C, Java, C++) lp trnh vin (you, me, Bill Joy)
Tuy khc nhau vchi tit, tt cm hnh phn cng vchng trnh u c im tng tnhau: chng l cc myTuring.
Chcn m cc php ton cbn l .
o n gin nhng c gi tri vi hiu quca cc thutton l mt hm ca kch thc input.
24
-
7/23/2019 Bai 1 Analysis
25/47
Trng hp Trung bnh, Xu nht
v Tt nht Hiu quca gii thut c nh gi trong trng
hp input no? Trng hp trung bnh: Kh don phn phi ca thgii tht
Trng hp tt nht: C vkhng thc t
Trng hp xu nht:a ra bo m tuyt i Ta sdng o trong trng hp xu nht.
25
-
7/23/2019 Bai 1 Analysis
26/47
V d
Cng vector Z = A+B
for (int i=0; i
-
7/23/2019 Bai 1 Analysis
27/47
Nhn (ngoi) vector Z = A*BT
for (int i=0; i
-
7/23/2019 Bai 1 Analysis
28/47
n gin ho binT(n) = ckn
k+ ck-1nk-1+ ck-2 n
k-2+ + c1n + co
qu phc tp qu nhiu shng
Rt kh so snh hai biu thc m mi biu thc c 10 hay
20 shng Ta c thc scn nhiu biu thc nhvy khng?
28
-
7/23/2019 Bai 1 Analysis
29/47
Chcn gimt shng!
shng tng nhanh nht (chi phi thi gian thc thi) Khng cn gicc hshng Cc hshng chu nh hng bi phn cng, ngn
ng,
Gi trtim cn (khi n ln) c xc nh hon ton bi shng dn u. V d T(n) = 10 n3 + n2 + 40n + 800
Nu n = 1,000, th T(n) = 10,001,040,800 sai sl 0.01% nu loi bmi shng tr n3
Trong mt dy chuyn lp rp ngi thchm nht quytnh tc sn xut.
Cc bc n gin ho29
-
7/23/2019 Bai 1 Analysis
30/47
Shng tng nhanh hn (v d2n) sdn dn ln t
cc shng tng chm hn(vd, 1000n) bt khsca chng l g!
Ni cch khc, vi cng mt sgia tng vthigian cho php, mt gii thut c bc cao hn skhng thu c li trong vic gii quyt cc bi
ton ln hn.
n gin ho30
-
7/23/2019 Bai 1 Analysis
31/47
T(n) gimt s
hng
bhs
3n2+4n+1 3 n2 n2
101 n2+102 101 n2 n2
15 n2+6n 15 n2 n2
a n2+bn+c a n2 n2
Tt cu c tc tng nhnhau
Cc tim cn31
-
7/23/2019 Bai 1 Analysis
32/47
T(n)
n n nlog n n2 n3 n4 n10 2n
10 .01s .03s .1s 1s 10s 10s 1s
20 .02s .09s .4s 8s 160s 2.84h 1ms
30 .03s .15s .9s 27s 810s 6.83d 1s
40 .04s .21s 1.6s 64s 2.56ms 121d 18m
50 .05s .28s 2.5s 125s 6.25ms 3.1y 13d
100 .1s .66s 10s 1ms 100ms 3171y 41013
y
103
1s 9.96s 1ms 1s 16.67m 3.171013
y 3210283
y
104
10s 130s 100ms 16.67m 115.7d 3.171023
y
10
5
100s 1.66ms 10s 11.57d 3171y 3.1710
33
y10
6 1ms 19.92ms 16.67m 31.71y 3.17107y 3.171043y
Gismy tnh thc hin1 tthao tc mi giy.
phc tp v tnh khthi32
-
7/23/2019 Bai 1 Analysis
33/47
Khng chp nht vo cu ch
mt thut gii 100n t hn mt thut gii n2 khi n N.
c dng nhiu nht
Big-Omega, cn di: T(n) = (f(n)) Tn ti c>0 v N sao cho T(n) cf(n) khi n > N. Tng tf(n) = O(T(n)).
Big-Theta, cn trn v di: T(n) = (f(n)) Tng tT(n) = O(f(n)) v T(n) = (f(n))
Cc k hiu tim cn34
-
7/23/2019 Bai 1 Analysis
35/47
33
25
10 0
(?)(?)
nn
nn
nn
O
23 2)( nnnT +=
V d
35
-
7/23/2019 Bai 1 Analysis
36/47
)(log/
))/((!)(
)(
)(
)(
)()(c
)(
ni
ennnrr
ni
ni
ni
nnc
nf
n
i
n
nini
kkni
ni
ni
kii
ki
=
=
+
=
=
=
=
1
1
1
0
1
1
32
1
2
1
1
V d
Tim cn
36
-
7/23/2019 Bai 1 Analysis
37/47
T(n) = cknk+ ck-1n
k-1+ ck-2 nk-2+ + c1n + co
Qu phc tp O(nk)
mt shng duy nht loi bcc hshng
n gin hn nhiu, cc shng v hshng khckhng c nh hngn tim cn
Cc chskhc rt kh nh lng
Tm tt (Ti sao O(n)?)37
-
7/23/2019 Bai 1 Analysis
38/47
Phn tch Th
i gian th
c thi Cc quy tc
pht biu n gin (c, ghi, gn)O(1)
cc php tnh n gin (+ - * / == > >= <
-
7/23/2019 Bai 1 Analysis
39/47
Hai qui tc quan trngQuy tc cng nu ta thc hin mt sthao tc theo tht, thi gian
thc thi bchi phi bi thao tc tn nhiu thi gian nht
Quy tc nhn nu ta lp li mt thao tc mt sln, tng thi gian thc
thi l thi gian thc thi ca thao tc nhn vi svng lp
Phn tch Th
i gian th
c thi (tt)39
-
7/23/2019 Bai 1 Analysis
40/47
if (cond) then O(1)
body1 T1(n)else
body2 T2(n)
T(n) = O(max (T1(n), T2(n))
Phn tch Th
i gian th
c thi (tt)40
-
7/23/2019 Bai 1 Analysis
41/47
Gi hm
A gi BB gi C
Mt chui thao tc gi hm ng cp:T(n) = max(TA(n), TB(n), TC(n))
Phn tch Th
i gian th
c thi (tt)41
-
7/23/2019 Bai 1 Analysis
42/47
V d
for (i=1; i maxVal){
maxVal= A[i];
maxPos= i;
}
phc tp tim cn: O(n)
Php so snh: O(n) Php gn: Xu nht: O(n)
Trung bnh: O(n)
42
-
7/23/2019 Bai 1 Analysis
43/47
V d
for (i=0; i= i+1; j--)
if (A[j-1] > A[j]){
temp = A[j-1];
A[j-1] = A[j];
A[j] = tmp;}
}
}
phc tp tim cn l O(n2)
43
-
7/23/2019 Bai 1 Analysis
44/47
Th
i gian Th
c thi cho
qui T(n) cnh ngha qui theo T(k), k
-
7/23/2019 Bai 1 Analysis
45/47
V d: Giai tha
int factorial (int n) {
if (n
-
7/23/2019 Bai 1 Analysis
46/47
V d: Giai tha (tt)
int factorial1(int n) {
if (n
-
7/23/2019 Bai 1 Analysis
47/47
Bi tp
Vit chng trnh v Tnh phc tp :
Tm phn t ln th nh ca 1 mngBi ton tm di chui con tng lin tip di nht
ca mt dys: vit t nht hai chng trnh vi
phc tp khc nhau.V d: 19 43 23 5 36 72 => 3
(*) Bi ton tm di chui con tngkhng lin tipdi nht ca mt dys:V d: 19 43 23 5 36 72 => 4
47