Giáo trình phân tích giải thuật

83 318 0
Giáo trình phân tích giải thuật

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giáo trình phân tích giải thuật

Collected by The_Wall (11/10/2005)Giỏo trỡnh mụn Phõn tớch Gii Thut I C CN TH Trang 11. Mc tiờu2. Kin thc c bn cn cú hc chng ny3. Ti liu tham kho cú liờn quan n chng4. Ni dung:I.1 - S cn thit phi phõn tớch gii thut.I.2 - Thi gian thc hin ca gii thut.I.3 - T sut tng v phc tp ca gii thut.I.4 - Cỏch tớnh phc tp.I.5 - Phõn tớch cỏc chng trỡnh quy.5. Vn nghiờn cu ca trang k tipTrong chng ny chỳng ta s nghiờn cu cỏc vn sau: ã S cn thit phi phõn tớch cỏc gii thut. ã Thi gian thc hin ca chng trỡnh. ã T sut tng v phc tp ca gii thut. ã Tớnh thi gian thc hin ca chng trỡnh. ã Phõn tớch cỏc chng trỡnh quy.I.1- S CN THIT PHI PHN TCH GII THUT Trong khi gii mt bi toỏn chỳng ta cú th cú mt s gii thut khỏc nhau, vn l cn phiỏnh giỏ cỏc gii thut ú la chn mt gii thut tt (nht). Thụng thng thỡ ta s cn c vo cỏctiờu chun sau: 1.- Gii thut ỳng n. 2.- Gii thut n gin. 3.- Gii thut thc hin nhanh. Vi yờu cu (1), kim tra tớnh ỳng n ca gii thut chỳng ta cú th ci t gii thut úv cho thc hin trờn mỏy vi mt s b d liu mu ri ly kt qu thu c so sỏnh vi kt quóbit. Thc ra thỡ cỏch lm ny khụng chc chn bi vỡ cú th gii thut ỳng vi tt c cỏc b d liuchỳng ta ó th nhng li sai vi mt b d liu no ú. V li cỏch lm ny ch phỏt hin ra gii thutsai ch cha chng minh c l nú ỳng. Tớnh ỳng n ca gii thut cn phi c chng minhng toỏn hc. Tt nhiờn u ny khụng n gin v do vy chỳng ta s khụng cp n õy. Khi chỳng ta vit mt chng trỡnh s dng mt vi ln thỡ yờu cu (2) l quan trng nht.Chỳng ta cn mt gii thut d vit chng trỡnh nhanh chúng cú c kt qa , thi gian thc hinchng trỡnh khụng c cao vỡ dự sao thỡ chng trỡnh ú cng ch s dng mt vi ln m thụi. Tuy nhiờn khi mt chng trỡnh c s dng nhiu ln thỡ thỡ yờu cu tiùt kim thi gian Collected by The_Wall (11/10/2005)Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 2thc hin chng trình li rt quan trng c bit i vi nhng chng trình mà khi thc hin cn dliu nhp ln do ó yêu cu (3) sc xem xét mt cách k càng. Ta gi nó là hiu qu thi gian thchin ca gii thut.I.2- THI GIAN THC HIN CA GII THUTI.2.1- Thi gian thc hin chng trình.I.2.2- n vo thi gian thc hin.I.2.3- Thi gian thc hin trong trng hp xu nht. 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p trình nó và ong thi gian thc hin ca hot ng trên mt máy tính xác nh i vi tp hp c chn lc các 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p các ch th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 thi hành cng có thuch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ácnhà khoa hc máy tính ã chp nhn tính phc tp ca thi gian c tip cn nh mt so lng c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i s phc tp thi gian trong trng hp xu nht.I.2.1- Thi gian thc hin chng trình.Thi gian thc hin mt chng trình là mt hàm ca kích thc d liu vào, ký hiu T(n) trong ó nlà kích thc ( ln) ca d liu vào.Ví d 1-1: 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àt hng s. Thi gian thc hin chng trình là mt hàm không âm, tc là T(n) ≥0 ∀n≥0.I.2.2- n vo thi gian thc hin. 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 1-2: 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.I.2.3- Thi gian thc hin trong trng hp xu nht. Nói chung thì thi gian thc hin chng trình không ch ph thuc vào kích thc mà cònph thuc vào tính cht ca d liu vào. Ngha là d liu vào có cùng kích thc nhng thi gian thchin chng trình có th khác nhau. Chng hn chng trình sp xp dãy s nguyên tng dn, khi tacho vào dãy có th t thì thi gian thc hin khác vi khi ta cho vào dãy cha có th t, hoc khi tacho vào mt dãy ã có th t tng thì thi gian thc hin cng khác so vi khi ta cho vào mt dãy ãcó th t gim. Vì vy thng ta coi T(n) là thi gian thc hin chng trình trong trng hp xu nht trên liu vào có kích thóc n, tc là: T(n) là thi gian ln nht  thc hin chng trình i vi mi dliu vào có cùng kích thc n.I.3- T SUT TNG VÀ  PHC TP CA GII THUT Collected by The_Wall (11/10/2005)Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 3I.3.1- T sut tngI.3.2- Khái nim  phc tp ca gii thutI.3.1- T sut tng Ta nói rng hàm không âm T(n) có  sut tng (growth rate) f(n) nu tn ti các hng s cvà n0 sao cho T(n)  f(n) vi mi n  n0. Ta có th chng minh c rng “Cho mt hàm không âm T(n) bt k, ta luôn tìm c tsut tng f(n) ca nó”.Ví d 1-3: Gi s T(0) = 1, T(1) = 4 và tng quát T(n) = (n+1)2. t n0 = 1 và c = 4 thì vi min  1 chúng ta d dàng chng minh rng T(n) = (n+1)2 4n2 vi mi n  1, tc là t sut tng ca T(n)là n2.Ví d 1-4: T sut tng ca hàm T(n) = 3n3 + 2n2 là n3. Thc vy, cho n0 = 0 và c = 5 ta ddàng chng minh rng vi mi n  0 thì 3n3 + 2n2 5n3I.3.2- Khái nim  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) = 100n2 (vi tsut tng là n2) và T2(n) = 5n3 (vi t sut tng là n3). Gii thut nào s thc hin nhanh hn? Câu tri ph thuc vào kích thc d liu vào. Vi n < 20 thì P2 s nhanh hn P1 (T2<T1), do h s ca 5n3nh hn h s ca 100n2 (5<100). Nhng khi n > 20 thì ngc li do s m ca 100n2 nh hn s ma 5n3 (2<3). ây chúng ta ch nên quan tâm n trng hp n>20 vì khi n<20 thì thi gian thchin ca c P1 và 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ng trình thayvì xét chính bn thân thi gian thc hin. Cho mt hàm T(n), T(n) gi là có  phc tp f(n) nu tn ti các hng c, N0 sao cho T(n) cf(n) vi mi n  N0 (tc là T(n) có t sut tng là f(n)) và kí hiu T(n) là O(f(n)) (c là “ô ca f(n)”)Ví d 1-5: T(n)= (n+1)2 có t sut tng là n2 nên T(n)= (n+1)2 là O(n2)Chú ý: O(c.f(n))=O(f(n)) vi c là hng s. c bi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àm thi gian. Vìng nhân t c trong hàm chn trên không có ý ngha nên ta có th b qua vì vy hàm th hin  phcp có các dng thng gp sau: log2n, n, nlog2n, n2, n3, 22, n!, nn. Ba hàm cui cùng ta gi là dnghàm m, các hàm khác gi là hàm a thc. Mt gii thut mà thi gian thc hin có  phc tp là mthàm a thc thì chp nhn c tc là có th cài t  thc hin, còn các gii thut có  phc tphàm m thì phi tìm cách ci tin gii thut. Khi nói n  phc tp ca gii thut là ta mun nói n hiu qu ca thi gian thc hin cachng trình nên ta có th xem vic xác nh thi gian thc hiên ca chng trình chính là xác nh phc tp ca gii thut.I.4- CÁCH TÍNH  PHC TPI.4.1- Qui tc cngI.4.2- Qui tc nhân Collected by The_Wall (11/10/2005)Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 4I.4.3- Qui tc tng quát  phân tích mt chng trìnhI.4.4-  phc tp ca chng trình có gi chng trình con không  qui 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. Tuy nhiên ta cóth tuân theo mt s nguyên tc sau:I.4.1- Qui tc c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 ó i tip nhau làT(n)=O(max(f(n),g(n)))Ví d 1-6: Lnh gán x:=15 tn mt hng thi gian hay O(1) Lnh c d liu READ(x) tn mt hng thi gian hay O(1) Vy thi gian thc hin c hai lnh trên ni tip nhau là O(max(1,1))=O(1)I.4.2- Qui 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 ó ng nhau là T(n) =O(f(n).g(n))I.4.3- Qui tc tng quát  phân tích mt chng trình: - Thi gian thc hin ca mi lnh gán, READ, WRITE là O(1) - Thi gian thc hin ca mt chui tun t các lnh c xác nh bng qui tc cng. Nhy thi gian này là thi gian thi hành mt lnh nào ó lâu nht trong chui lnh. - Thi gian thc hin cu trúc IF là thi gian ln nht thc hin lnh sau THEN hoc sau ELSEvà thi gian kim tra u kin. Thng thi gian kim tra u kin là O(1). - Thi gian thc hin vòng lp là tng (trên tt c các ln lp) thi gian thc hin thân vòngp. Nu thi gian thc hin than vòng lp không i thì thi gian thc hin vòng lp là tích ca s lnp vi thi gian thc hin thân vòng lp.Ví d 1-7: Tính thi gian thc hin ca n chng trìnhprocedure Bubble (var a: array[1 n] of integer);var i,j,temp: integer;begin{1} for i:=1 to n-1 do{2} for j:=n downto i+1 do{3} if a[j-1]>a[j] then begin{ i ch a[i], a[j] }{4} temp:=a[j-1];{5} a[j-1]:=a[j];{6} a[j]:=temp; end;end; Collected by The_Wall (11/10/2005)Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 5 C ba lnh i ch {4} {5} {6} tn O(1) thi gian, do ó lnh {3} tn O(1). Vòng lp {2} thc hin (n-i) ln, mi ln O(1) do ó vòng lp {2} tn O((n-i).1)=O(n-i). Vòng lp {1} lp (n-1) ln vy  phc tp ca gii thut là:I.4.4-  phc tp ca chng trình có gi chng trình con không  qui Nu chúng ta có mt chng trình vi các chng trình con không  quy,  tính thi gianthc hin ca chng trình, trc ht chúng ta tính thi gian thc hin ca các chng trình con khôngi các chng trình con khác. Sau ó chúng ta tính thi gian thc hin ca các chng trình con chi các chng trình con mà thi gian thc hin ca chúng ã c tính. Chúng ta tip tc quá trìnhánh giá thi gian thc hin ca mi chng trình con sau khi thi gian thc hin ca tt c cácchng trình con mà nó gi ã c ánh giá. Cui cùng ta tính thi gian cho chng trình chính. Gi s ta cô mt h thng các chng trình gi theo s sau: Chng trình A gi hai chng trình con là B và C, chng trình B gi hai chng trình con làB1 và B2, chng trình B1 gi hai chng trình con là B11 và B12.  tính thi gian thc hin ca A, ta tính theo các bc sau: - Tính thi gian thc hin ca C, B2, B11 và B12. - Tính thi gian thc hin ca B1. - Tính thi gian thc hin ca B. - Tính thi gian thc hin ca A.Ví d 1-8: Ta có th vit li chng trình sp xp bubble nh sau:procedure Swap (var x, y: integer);var temp: integer;begin temp := x; x := y; y := temp;end; Collected by The_Wall (11/10/2005)Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 6procedure Bubble (var a: array[1 n] of integer);var i,j :integer;begin {1} for i:=1 to n-1 do {2} for j:=n downto i+1 do {3} if a[j-1]>a[j] then Swap(a[j-1], a[j]);end; Trong cách vit trên, chng trình Bubble gi chng trình con Swap, do ó  tính thi gianthc hin ca Bubble, trc ht ta cn tính thi gian thc hin ca Swap. D thy thi gian thc hina Swap là O(1) vì nó ch bao gm 3 lnh gán. Trong Bubble, lnh {3} gi Swap nên ch tn O(1), lnh {2} thc hin n-i ln, mi ln tnO(1) nên tn O(n-i). Lnh {1} thc hin n-1 ln nênI.5- PHÂN TÍCH CÁC CHNG TRÌNH  QUYI.5.1- Thành lp phng trình  quyI.5.2- Gii phng trình  quy Vi các chng trình có gi các chng trình con  quy, ta không th áp dng cách tính nha trình bày trong mc I.4.4 bi vì mt chng trình  quy s gi chính bn thân nó. Vi các chng trình  quy, trc ht ta cn thành lp các phng trình  quy, sau ó giiphng trình  quy, nghim ca phng trình  quy s là thi gian thc hin ca chng trình quy.I.5.1- Thành lp phng trình  quy Phng trình  quy là mt phng trình biu din mi liên h gia T(n) và T(k), trong óT(n) là thi gian thc hin chng trình vi kích thc d liu nhp là n, T(k) thi gian thc hinchng trình vi kích thc d liu nhp là k, vi k < n.  thành lp c phng trình  quy, taphi cn c vào chng trình  quy.Ví d 1-9: Xét hàm tính giai tha vit bng gii thut  quy nh sau:function Giai_thua(n:integer): integer;begin if n=0 then Giai_thua :=1 else Giai_thua := n* Giai_thua(n-1);end;i T(n) là thi gian thc hin vic tính n giai tha, thì T(n-1) là thi gian thc hin vic tínhn-1 giai tha. Trong trng hp n=0 thì chng trình ch thc hin mt lnh gán Giai_thua:=1, nên tnO(1), do ó ta có T(0) = C1. Trong trng hp n>0 chng trình phi gi  quy Giai_thua(n-1), vici  quy này tn T(n-1), sau khi có kt qu ca vic gi  quy, chng trình phi nhân kt quói n và gán cho Giai_thua. Thi gian  thc hin phép nhân và phép gán là mt hng C2. Vy ta có Collected by The_Wall (11/10/2005)Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 7 ây là phng trình  quy  tính thi gian thc hin ca chng trình  quy Giai_thua. Ví d 1-10: Chúng ta xét th tc MergeSort mt cách phác tho nh sau:function MergeSort (L:List ; n:integer) : List;var L1,L2 : List;begin if n = 1 then return(L) else begin Chia L thành 2 na L1 và L2 , mi mt na có  dài n/2; return(Merge(MergeSort (L1 , n/2), MergeSort(L2, n/2))); end;end; Chng hn  sp xp danh sách L gm 8 phn t 7, 4, 8, 9, 3, 1, 6, 2 ta có mô hình minh haa MergeSort nh sau: Hàm MergeSort nhn mt danh sách có  dài n và tr v mt danh sách ã c sp xp. Thc Merge nhn hai danh sách ã c sp L1 và L2 mi danh sách có  dài n/2, trn chúng li vinhau c mt danh sách gm n phn t có th t. Gii thut chi tit ca Merge ta s bàn sau,chúng ta ch ý rng thi gian  Merge các danh sách có  dài n/2 là O(n). Collected by The_Wall (11/10/2005)Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 8 Gi T(n) là thi gian thc hin MergeSort mt danh sách n phn t thì T(n/2) là thi gian thchin MergeSort mt danh sách n/2 phn t , ta có th vit phng trình  quy nh sau: Trong ó c1 là thi gian phi tn khi L có  dài 1. Trong trng hp n > 1, thi gian caMergeSort c chia làm hai phn. Phn gi  quy MergeSort mt danh sách có  dài n/2 là T(n/2)do ó ta có 2T(n/2). Phn th hai bao gm phép th n >1, chia danh sách L thành hai na bng nhau vàMerge. Ba thao tác này ly thi gian không i i vi phép th hoc t l vi n i vi ngt vàMerge. Nh vy hng c2c chn và c2n là thi gian tng  làm các vic ó ngoi tr gi  quy. I.5.2- Gii phng trình  quy Có ba phng pháp gii phng trình  quy: 1.- Phng pháp truy hi 2.- Phng pháp oán nghim. 3.- Li gii tng quát ca mt lp các phng trình  quy.Phng pháp truy hi Dùng  quy  thay th bt k T(m) vi m < n vào phía phi ca phng trình cho n khi tt T(m) vi m > 1 c thay th bi biu thc ca các T(1). Vì T(1) luôn là hng nên chúng ta có côngthc ca T(n) cha các s hng ch liên quan n n và các hng s.Gii phng trình.Ví d 1-10: Gii phng trình: Ta có: Gi s n = 2k, quá trình suy rng s kt thúc khi i =k, khi ó ta có: T(n) = 2kT(1) + kC2n Vì 2k = n nên k = logn và vi T(1) =C1 nên ta có Collected by The_Wall (11/10/2005)Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 9 T(n) = C1n + C2nlogn Hay T(n) là O(nlogn).oán nghim Ta oán mt nghim f(n) và dùng chng minh quy np  chng t rng T(n)  f(n) vi mi n. Thông thng f(n) là mt trong các hàm quen thuc nh logn, n, nlogn, n2, n3, 2n, n!, nn. ôi khi chúng ta choán dng ca f(n) trong ó có mt vài tham s cha xác nh (chng hnf(n) = an2 vi a cha xác nh) và trong quá trình chng minh quy np ta s suy din ra giá tr thíchp ca các tham s.Ví d 1-11: Gii phng trình  quy Gi s chúng ta oán f(n) = anlogn. Vi n = 1 ta thy rng cách oán nh vy không c bivì anlog n có giá tr 0 không ph thuc vào giá tr ca a. Vì th ta th tip theo f(n) = anlogn + b. Vi n = 1 ta có, T(1) = C1 và f(1) = b, mun T(1)  f(1) thì b  C1 (*) Gi s rng T(k)  aklogk + b vi mi k < n (I.2).Ta s chng minh T(n)  anlogn + b Gi s n  2, t (I.1) ta có T(n) = 2T(n/2) + C2n Áp dng (I.2) vi k = n/2 < n ta có: T(n) = 2T(n/2) + C2n  2[an/2log(n/2) + b] + C2n T(n)  anlogn - an + 2b + C2n T(n)  (anlogn + b) + [b + (C2 - a)n] . Nu ly a  C2 + b (**) ta c T(n)  (anlogn + b) + [b +(C2 - C2 - b )n ] T(n)  (anlogn + b) + (1-n) b T(n)  an logn + b. Nu ta ly a và b sao cho c (*) và (**) u tho mãn thì T(n)  an logn + b vi mi n. D dàng ta có b = C1 và a= C1 +C2 ta c T(n)  (C1 + C2)nlogn + C1 vi mi n. Collected by The_Wall (11/10/2005)Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 10 Hay nói cách khác T(n) là O(nlogn).i gii tng quát cho mt lp các phng trình  quy  gii bài toán kích thc n, ta chia bài toán ã cho thành a bài toán con, mi bài tóan con cókích thc n/b. Gii các bài toán con này và tng hp kt qu li c kt qu ca bài toán ã cho.i các bài toán con chúng ta cng làm nh vy. K thut này s dn chúng ta n mt chng trình quy. Gi thit rng mi bài toán con kích thc 1 ly mt n v thi gian và thi gian  chia bàitoán kích thc n thành các bài toán con kích thc n/b và tng hp kt qu t các bài toán con c li gii ca bài toán ban u là d(n). (Chng hn i vi thí d MergeSort, chúng ta có a = b = 2,và d(n) = C2n/C1. Xem C1 là mt n v). Gi T(n) là thi gian  gii bài toán kích thc n thì ta có phng trình  quy: Ta s dng phng pháp truy hi  gii phng trình này Gi s n = bk ta c: T(n/bk) = T(1) = 1. Thay vào trên vi i = k ta có: Hàm tin trin, nghim thun nht và nghim riêng Trong phng trình  quy (I.1) hàm thi gian d(n) c gi là hàm tin trin (drivingfunction) Trong công thc (I.2), ak = nlogbac gi là nghim thun nht (homogeneous solutions). Nghim thun nht là nghim chính xác khi d(n) = 0 vi mi n. Nói mt cách khác, nghimthun nht biu din thi gian  gii tt c các bài toán con. [...]... nhng bài tốn mà q trình phân tích thì n gin nhng vic tng hp kt qu li rt khó khn. Trong các phn tip sau ta s trình bày mt s ví d thy rõ hn u này.  thut này s cho chúng ta mt gii thut  quy mà vic xác nh  phc tp ca nó s phi gii mt phng trình  quy nh trong chng I ã trình bày. Collected by The_Wall (11/10/2005) Giáo trình mơn Phân tích Gii Thut –... The_Wall (11/10/2005) Giáo trình mơn Phân tích Gii Thut – I C CN TH Trang 1 1. Mc tiêu 2. Kin thc c bn cn có  hc chng này 3. Tài liu tham kho có liên quan n chng 4. Ni dung: I.1 - S cn thit phi phân tích gii thut. I.2 - Thi gian thc hin ca gii thut. I.3 - T sut tng và  phc tp ca gii thut. I.4 - Cách tính  phc tp. I.5 - Phân tích các chng trình  quy. 5.... trang k tip Trong chng này chúng ta s nghiên cu các vn  sau: · S cn thit phi phân tích các gii thut. · Thi gian thc hin ca chng trình. · T sut tng và  phc tp ca gii thut. · Tính thi gian thc hin ca chng trình. · Phân tích các chng trình  quy. I.1- S CN THIT PHI PHÂN TÍCH GII THUT Trong khi gii mt bài tốn chúng ta có th có mt s gii thut khác nhau,... do con trái ca a[5] là a[10] là mt nút lá nên vic y xung ca a[5] kt thúc. Collected by The_Wall (11/10/2005) Giáo trình mơn Phân tích Gii Thut – I C CN TH Trang 4 I.4.3- Qui tc tng qt  phân tích mt chng trình I.4.4-  phc tp ca chng trình có gi chng trình con khơng  qui 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. Tuy nhiên ta có th... thc nh hn na. Q trình trên  dn n nhng bài toán mà li gii chúng là hin nhiên hoc  dàng thc hin, ta gi các bài tốn này là bài tốn c s. Tóm li k thut chia  tr bao gm hai q trình: Phân tích bài toán ã cho thành các bài toán c s và ng hp kt qu t bài tốn c s có li gii ca bài toán ban u. Tuy nhiên i vi t s bài tốn, thì q trình phân tích ã cha ng vic... chng trình  s dng mt vài ln thì yêu cu (2) là quan trng nht. Chúng ta cn mt gii thut d vit chng trình  nhanh chóng có c kt qa , thi gian thc hin chng trình khơng c  cao vì dù sao thì chng trình ó cng ch s dng mt vài ln mà thơi. Tuy nhiên khi mt chng trình c s dng nhiu ln thì thì yêu cu tiït kim thi gian Collected by The_Wall (11/10/2005) Giáo trình. .. a[10] ã c sp. Thc hin vic y a[1] xung úng v trí ca nó trong cây a[1] a[8] ta c cây Collected by The_Wall (11/10/2005) Giáo trình mơn Phân tích Gii Thut – I C CN TH Trang 23 Hai con nháy L, R sc s dng  thc hin vic phân hoch nhã trình bày trong phn II.3.2. Function Partition(i,j:integer; pivot :KeyType):integer ; var l,r : integer; begin l := i; {t con nháy... 12 Collected by The_Wall (11/10/2005) Giáo trình mơn Phân tích Gii Thut – I C CN TH Trang 33 B: array[keytype] of ListType; {Ta gi thit keytype là kiu min con 1 m } procedure BinSort; var i:integer; j: KeyType; begin {1}for i:=1 to n do INSERT(A[i], END(B[A[i].key]), B[A[i}.key]); {2}for j:= 2 to m do CONCATENATE(B[1], B[j]); end; II.5.2- Phân tích Bin Sort Bin sort ly O(n) thi gian... 0 n 9. K mt ta phân phi phn t a[i] vào bin có ch s a[i].key MOD 10. Ni các bin li vi nhau ta c danh sách có khóa là: 0 1 81 64 4 25 36 16 9 49. K hai s dng kt qu ca k 1  sp tip. Phân phi phn t a[i] vào bin có ch s a[i].key DIV 10. Ni các bin li vi nhau ta c danh sách có th t.  1 K 2 Collected by The_Wall (11/10/2005) Giáo trình mơn Phân tích Gii Thut – I... toán ng i ca ngi giao hàng III.3.4- Bài toán cái ba lô Collected by The_Wall (11/10/2005) Giáo trình mơn Phân tích Gii Thut – I C CN TH Trang 34 Bin Bin 0 0 0 0 1 4 9 1 1 81 1 16 2 2 25 3 3 36 4 64 4 4 49 5 25 5 6 36 16 6 64 7 7 8 8 81 9 9 49 9 Hình 2-13: Sp xp theo hai k Theo s phân tích gii thut Bin Sort thì mi k ly O(n) thi gian, hai k này ni tip nhau nên thi gian tng . các phn: gii thut, ví d, chng trình và phân tích ánh giá. Collected by The_Wall (11/10/2005 )Giáo trình môn Phân tích Gii Thut – I C CN TH........................................................................Trang. ln nênI.5- PHÂN TÍCH CÁC CHNG TRÌNH  QUYI.5.1- Thành lp phng trình  quyI.5.2- Gii phng trình  quy Vi các chng trình có gi

Ngày đăng: 21/08/2012, 09:40

Hình ảnh liên quan

Ch ngh ns px p danh sách L gm 8 ph nt 7, 4, 8, 9, 3, 1, 6 ,2 ta có mô hình minh ha a MergeSort nh  sau: - Giáo trình phân tích giải thuật

h.

ngh ns px p danh sách L gm 8 ph nt 7, 4, 8, 9, 3, 1, 6 ,2 ta có mô hình minh ha a MergeSort nh sau: Xem tại trang 7 của tài liệu.
Hình 2-2: Sp xp xen - Giáo trình phân tích giải thuật

Hình 2.

2: Sp xp xen Xem tại trang 19 của tài liệu.
Hình 2-3: S px pn t - Giáo trình phân tích giải thuật

Hình 2.

3: S px pn t Xem tại trang 20 của tài liệu.
i nút 2 cho nút 5. Xét li nút 5 thì nó vn úng v trí nên t ac cây mi trong hình 2-9. - Giáo trình phân tích giải thuật

i.

nút 2 cho nút 5. Xét li nút 5 thì nó vn úng v trí nên t ac cây mi trong hình 2-9 Xem tại trang 28 của tài liệu.
A: array[1..n] of RecordType; - Giáo trình phân tích giải thuật

array.

[1..n] of RecordType; Xem tại trang 32 của tài liệu.
Hình 2-13 minh ha vi c ni hai danh sách. - Giáo trình phân tích giải thuật

Hình 2.

13 minh ha vi c ni hai danh sách Xem tại trang 32 của tài liệu.
Hình 2-13: Sp xp theo hai k - Giáo trình phân tích giải thuật

Hình 2.

13: Sp xp theo hai k Xem tại trang 34 của tài liệu.
Ví d 3-3: Bi u th c5 + 2* 3-4 sc bi u d in bi cây trong hình 3-8: - Giáo trình phân tích giải thuật

d.

3-3: Bi u th c5 + 2* 3-4 sc bi u d in bi cây trong hình 3-8: Xem tại trang 46 của tài liệu.
d hình dung t as xét hai bài toán quen th uc là bài toán TSP và bài toán cái ba lô. - Giáo trình phân tích giải thuật

d.

hình dung t as xét hai bài toán quen th uc là bài toán TSP và bài toán cái ba lô Xem tại trang 52 của tài liệu.
· Nút gc là nút bi u d in cho cu hình bao gm t tc các ph ng án. - Giáo trình phân tích giải thuật

t.

gc là nút bi u d in cho cu hình bao gm t tc các ph ng án Xem tại trang 53 của tài liệu.
Ví d 3-8: V is li u cho trong ví d 3-7 nói trên, ta tính cn di ca nút g cA (hình 3-13) nh  sau: - Giáo trình phân tích giải thuật

d.

3-8: V is li u cho trong ví d 3-7 nói trên, ta tính cn di ca nút g cA (hình 3-13) nh sau: Xem tại trang 54 của tài liệu.
Ví d 3-12: Cho th G bao gm 5 nh a, b, c, d,e và dài cá cc nh c cho trong hình 3- 3-17. - Giáo trình phân tích giải thuật

d.

3-12: Cho th G bao gm 5 nh a, b, c, d,e và dài cá cc nh c cho trong hình 3- 3-17 Xem tại trang 60 của tài liệu.
Li thê mc nh ab =3, bc nh bc =4 t ac cây có giá là16 (Hình 3-18c).             Thêm c nh be = 3, b  c nh ae = 7 ta c cây có giá là 12 - Giáo trình phân tích giải thuật

i.

thê mc nh ab =3, bc nh bc =4 t ac cây có giá là16 (Hình 3-18c). Thêm c nh be = 3, b c nh ae = 7 ta c cây có giá là 12 Xem tại trang 61 của tài liệu.
Ph ng án ban u là chu trình (ab c de a) có giá (t ng dà i) là 25. (Hình 3-20a). - Giáo trình phân tích giải thuật

h.

ng án ban u là chu trình (ab c de a) có giá (t ng dà i) là 25. (Hình 3-20a) Xem tại trang 62 của tài liệu.
N gi ta có th mô hình hóa bn th gi ib ng mt th không có h ng, trong óm inh bi u - Giáo trình phân tích giải thuật

gi.

ta có th mô hình hóa bn th gi ib ng mt th không có h ng, trong óm inh bi u Xem tại trang 64 của tài liệu.
Hình 4-1 mô th at ng c ab nh trong, bm và b nh ngoài trong thao tá cc và ghi p tin - Giáo trình phân tích giải thuật

Hình 4.

1 mô th at ng c ab nh trong, bm và b nh ngoài trong thao tá cc và ghi p tin Xem tại trang 68 của tài liệu.

Tài liệu cùng người dùng

Tài liệu liên quan