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 Gii Thut – I C CN TH Trang 2thc hin chng trình li rt quan trng c bit i vi nhng chng trình mà khi thc hin cn dliu nhp ln do ó yêu cu (3) sc xem xét mt cách k càng. Ta gi nó là hiu qu thi gian thchin ca gii thut.I.2- THI GIAN THC HIN CA GII THUTI.2.1- Thi gian thc hin chng trình.I.2.2- n vo thi gian thc hin.I.2.3- Thi gian thc hin trong trng hp xu nht. Mt phng pháp xác nh hiu qu thi gian thc hin ca mt gii thut là lp trình nó và ong thi gian thc hin ca hot ng trên mt máy tính xác nh i vi tp hp c chn lc các liu vào. Thi gian thc hin không ch ph thuc vào gii thut mà còn ph thuc váo tp các ch tha máy tính, cht lng ca máy tính và k xo ca ngi lp trình. S thi hành cng có thuchnh thc hin tt trên tp c bit các d liu vào c chn. vt qua các tr ngi này, cácnhà khoa hc máy tính ã chp nhn tính phc tp ca thi gian c tip cn nh mt so lng cn s thc thi ca gii thut. Thut ng tính hiu qu s cp n so lng này và c bit ii s phc tp thi gian trong trng hp xu nht.I.2.1- Thi gian thc hin chng trình.Thi gian thc hin mt chng trình là mt hàm ca kích thc d liu vào, ký hiu T(n) trong ó nlà kích thc ( ln) ca d liu vào.Ví d 1-1: Chng trình tính tng ca n s có thi gian thc hin là T(n) = cn trong ó c làt hng s. Thi gian thc hin chng trình là mt hàm không âm, tc là T(n) ≥0 ∀n≥0.I.2.2- n vo thi gian thc hin. n v ca T(n) không phi là n vo thi gian bình thng nh gi, phút giây . mà thngc xác nh bi s các lnh c thc hin trong mt máy tính lý tng.Ví d 1-2: Khi ta nói thi gian thc hin ca mt chng trình là T(n) = cn thì có ngha làchng trình y cn cn ch th thc thi.I.2.3- Thi gian thc hin trong trng hp xu nht. Nói chung thì thi gian thc hin chng trình không ch ph thuc vào kích thc mà cònph thuc vào tính cht ca d liu vào. Ngha là d liu vào có cùng kích thc nhng thi gian thchin chng trình có th khác nhau. Chng hn chng trình sp xp dãy s nguyên tng dn, khi tacho vào dãy có th t thì thi gian thc hin khác vi khi ta cho vào dãy cha có th t, hoc khi tacho vào mt dãy ã có th t tng thì thi gian thc hin cng khác so vi khi ta cho vào mt dãy ãcó th t gim. Vì vy thng ta coi T(n) là thi gian thc hin chng trình trong trng hp xu nht trên liu vào có kích thóc n, tc là: T(n) là thi gian ln nht thc hin chng trình i vi mi dliu vào có cùng kích thc n.I.3- T SUT TNG VÀ PHC TP CA GII THUT Collected by The_Wall (11/10/2005)Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 3I.3.1- T sut tngI.3.2- Khái nim phc tp ca gii thutI.3.1- T sut tng Ta nói rng hàm không âm T(n) có sut tng (growth rate) f(n) nu tn ti các hng s cvà n0 sao cho T(n) f(n) vi mi n n0. Ta có th chng minh c rng “Cho mt hàm không âm T(n) bt k, ta luôn tìm c tsut tng f(n) ca nó”.Ví d 1-3: Gi s T(0) = 1, T(1) = 4 và tng quát T(n) = (n+1)2. t n0 = 1 và c = 4 thì vi min 1 chúng ta d dàng chng minh rng T(n) = (n+1)2 4n2 vi mi n 1, tc là t sut tng ca T(n)là n2.Ví d 1-4: T sut tng ca hàm T(n) = 3n3 + 2n2 là n3. Thc vy, cho n0 = 0 và c = 5 ta ddàng chng minh rng vi mi n 0 thì 3n3 + 2n2 5n3I.3.2- Khái nim phc tp ca gii thut Gi s ta có hai gii thut P1 và P2 vi thi gian thc hin tng ng là T1(n) = 100n2 (vi tsut tng là n2) và T2(n) = 5n3 (vi t sut tng là n3). Gii thut nào s thc hin nhanh hn? Câu tri ph thuc vào kích thc d liu vào. Vi n < 20 thì P2 s nhanh hn P1 (T2<T1), do h s ca 5n3nh hn h s ca 100n2 (5<100). Nhng khi n > 20 thì ngc li do s m ca 100n2 nh hn s ma 5n3 (2<3). ây chúng ta ch nên quan tâm n trng hp n>20 vì khi n<20 thì thi gian thchin ca c P1 và P2 u không ln và s khác bit gia T1 và T2 là không áng k Nh vy mt cách hp lý là ta xét t sut tng ca hàm thi gian thc hin chng trình thayvì xét chính bn thân thi gian thc hin. Cho mt hàm T(n), T(n) gi là có phc tp f(n) nu tn ti các hng c, N0 sao cho T(n) cf(n) vi mi n N0 (tc là T(n) có t sut tng là f(n)) và kí hiu T(n) là O(f(n)) (c là “ô ca f(n)”)Ví d 1-5: T(n)= (n+1)2 có t sut tng là n2 nên T(n)= (n+1)2 là O(n2)Chú ý: O(c.f(n))=O(f(n)) vi c là hng s. c bit O(c)=O(1) Nói cách khác phc tp tính toán ca gii thut là mt hàm chn trên ca hàm thi gian. Vìng nhân t c trong hàm chn trên không có ý ngha nên ta có th b qua vì vy hàm th hin phcp có các dng thng gp sau: log2n, n, nlog2n, n2, n3, 22, n!, nn. Ba hàm cui cùng ta gi là dnghàm m, các hàm khác gi là hàm a thc. Mt gii thut mà thi gian thc hin có phc tp là mthàm a thc thì chp nhn c tc là có th cài t thc hin, còn các gii thut có phc tphàm m thì phi tìm cách ci tin gii thut. Khi nói n phc tp ca gii thut là ta mun nói n hiu qu ca thi gian thc hin cachng trình nên ta có th xem vic xác nh thi gian thc hiên ca chng trình chính là xác nh phc tp ca gii thut.I.4- CÁCH TÍNH PHC TPI.4.1- Qui tc cngI.4.2- Qui tc nhân Collected by The_Wall (11/10/2005)Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 4I.4.3- Qui tc tng quát phân tích mt chng trìnhI.4.4- phc tp ca chng trình có gi chng trình con không qui Cách tính phc tp ca mt gii thut bt k là mt vn không n gin. Tuy nhiên ta cóth tuân theo mt s nguyên tc sau:I.4.1- Qui tc cng: Nu T1(n) và T2(n) là thi gian thc hin ca hai n chng trình P1 và P2; vàT1(n)=O(f(n)), T2(n)=O(g(n) thì thi gian thc hin ca n hai chng trình ó i tip nhau làT(n)=O(max(f(n),g(n)))Ví d 1-6: Lnh gán x:=15 tn mt hng thi gian hay O(1) Lnh c d liu READ(x) tn mt hng thi gian hay O(1) Vy thi gian thc hin c hai lnh trên ni tip nhau là O(max(1,1))=O(1)I.4.2- Qui tc nhân: Nu T1(n) và T2(n) là thi gian thc hin ca hai n chng trình P1và P2 và T1(n) =O(f(n)), T2(n) = O(g(n) thì thi gian thc hin ca n hai n chng trình ó ng nhau là T(n) =O(f(n).g(n))I.4.3- Qui tc tng quát phân tích mt chng trình: - Thi gian thc hin ca mi lnh gán, READ, WRITE là O(1) - Thi gian thc hin ca mt chui tun t các lnh c xác nh bng qui tc cng. Nhy thi gian này là thi gian thi hành mt lnh nào ó lâu nht trong chui lnh. - Thi gian thc hin cu trúc IF là thi gian ln nht thc hin lnh sau THEN hoc sau ELSEvà thi gian kim tra u kin. Thng thi gian kim tra u kin là O(1). - Thi gian thc hin vòng lp là tng (trên tt c các ln lp) thi gian thc hin thân vòngp. Nu thi gian thc hin than vòng lp không i thì thi gian thc hin vòng lp là tích ca s lnp vi thi gian thc hin thân vòng lp.Ví d 1-7: Tính thi gian thc hin ca n chng 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 Gii Thut – I C CN TH Trang 5 C ba lnh i ch {4} {5} {6} tn O(1) thi gian, do ó lnh {3} tn O(1). Vòng lp {2} thc hin (n-i) ln, mi ln O(1) do ó vòng lp {2} tn O((n-i).1)=O(n-i). Vòng lp {1} lp (n-1) ln vy phc tp ca gii thut là:I.4.4- phc tp ca chng trình có gi chng trình con không qui Nu chúng ta có mt chng trình vi các chng trình con không quy, tính thi gianthc hin ca chng trình, trc ht chúng ta tính thi gian thc hin ca các chng trình con khôngi các chng trình con khác. Sau ó chúng ta tính thi gian thc hin ca các chng trình con chi các chng trình con mà thi gian thc hin ca chúng ã c tính. Chúng ta tip tc quá trìnhánh giá thi gian thc hin ca mi chng trình con sau khi thi gian thc hin ca tt c cácchng trình con mà nó gi ã c ánh giá. Cui cùng ta tính thi gian cho chng trình chính. Gi s ta cô mt h thng các chng trình gi theo s sau: Chng trình A gi hai chng trình con là B và C, chng trình B gi hai chng trình con làB1 và B2, chng trình B1 gi hai chng trình con là B11 và B12. tính thi gian thc hin ca A, ta tính theo các bc sau: - Tính thi gian thc hin ca C, B2, B11 và B12. - Tính thi gian thc hin ca B1. - Tính thi gian thc hin ca B. - Tính thi gian thc hin ca A.Ví d 1-8: Ta có th vit li chng trình sp xp 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 Gii Thut – I C CN 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 vit trên, chng trình Bubble gi chng trình con Swap, do ó tính thi gianthc hin ca Bubble, trc ht ta cn tính thi gian thc hin ca Swap. D thy thi gian thc hina Swap là O(1) vì nó ch bao gm 3 lnh gán. Trong Bubble, lnh {3} gi Swap nên ch tn O(1), lnh {2} thc hin n-i ln, mi ln tnO(1) nên tn O(n-i). Lnh {1} thc hin n-1 ln nênI.5- PHÂN TÍCH CÁC CHNG TRÌNH QUYI.5.1- Thành lp phng trình quyI.5.2- Gii phng trình quy Vi các chng trình có gi các chng trình con quy, ta không th áp dng cách tính nha trình bày trong mc I.4.4 bi vì mt chng trình quy s gi chính bn thân nó. Vi các chng trình quy, trc ht ta cn thành lp các phng trình quy, sau ó giiphng trình quy, nghim ca phng trình quy s là thi gian thc hin ca chng trình quy.I.5.1- Thành lp phng trình quy Phng trình quy là mt phng trình biu din mi liên h gia T(n) và T(k), trong óT(n) là thi gian thc hin chng trình vi kích thc d liu nhp là n, T(k) thi gian thc hinchng trình vi kích thc d liu nhp là k, vi k < n. thành lp c phng trình quy, taphi cn c vào chng trình quy.Ví d 1-9: Xét hàm tính giai tha vit bng gii thut 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à thi gian thc hin vic tính n giai tha, thì T(n-1) là thi gian thc hin vic tínhn-1 giai tha. Trong trng hp n=0 thì chng trình ch thc hin mt lnh gán Giai_thua:=1, nên tnO(1), do ó ta có T(0) = C1. Trong trng hp n>0 chng trình phi gi quy Giai_thua(n-1), vici quy này tn T(n-1), sau khi có kt qu ca vic gi quy, chng trình phi nhân kt quói n và gán cho Giai_thua. Thi gian thc hin phép nhân và phép gán là mt hng C2. Vy ta có Collected by The_Wall (11/10/2005)Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 7 ây là phng trình quy tính thi gian thc hin ca chng trình quy Giai_thua. Ví d 1-10: Chúng ta xét th tc MergeSort mt cách phác tho 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 na L1 và L2 , mi mt na có dài n/2; return(Merge(MergeSort (L1 , n/2), MergeSort(L2, n/2))); end;end; Chng hn sp xp danh sách L gm 8 phn t 7, 4, 8, 9, 3, 1, 6, 2 ta có mô hình minh haa MergeSort nh sau: Hàm MergeSort nhn mt danh sách có dài n và tr v mt danh sách ã c sp xp. Thc Merge nhn hai danh sách ã c sp L1 và L2 mi danh sách có dài n/2, trn chúng li vinhau c mt danh sách gm n phn t có th t. Gii thut chi tit ca Merge ta s bàn sau,chúng ta ch ý rng thi 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 Gii Thut – I C CN TH Trang 8 Gi T(n) là thi gian thc hin MergeSort mt danh sách n phn t thì T(n/2) là thi gian thchin MergeSort mt danh sách n/2 phn t , ta có th vit phng trình quy nh sau: Trong ó c1 là thi gian phi tn khi L có dài 1. Trong trng hp n > 1, thi gian caMergeSort c chia làm hai phn. Phn gi quy MergeSort mt danh sách có dài n/2 là T(n/2)do ó ta có 2T(n/2). Phn th hai bao gm phép th n >1, chia danh sách L thành hai na bng nhau vàMerge. Ba thao tác này ly thi gian không i i vi phép th hoc t l vi n i vi ngt vàMerge. Nh vy hng c2c chn và c2n là thi gian tng làm các vic ó ngoi tr gi quy. I.5.2- Gii phng trình quy Có ba phng pháp gii phng trình quy: 1.- Phng pháp truy hi 2.- Phng pháp oán nghim. 3.- Li gii tng quát ca mt lp các phng trình quy.Phng pháp truy hi Dùng quy thay th bt k T(m) vi m < n vào phía phi ca phng trình cho n khi tt T(m) vi m > 1 c thay th bi biu thc ca các T(1). Vì T(1) luôn là hng nên chúng ta có côngthc ca T(n) cha các s hng ch liên quan n n và các hng s.Gii phng trình.Ví d 1-10: Gii phng trình: Ta có: Gi s n = 2k, quá trình suy rng s kt thúc khi i =k, khi ó ta có: T(n) = 2kT(1) + kC2n Vì 2k = n nên k = logn và vi T(1) =C1 nên ta có Collected by The_Wall (11/10/2005)Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 9 T(n) = C1n + C2nlogn Hay T(n) là O(nlogn).oán nghim Ta oán mt nghim f(n) và dùng chng minh quy np chng t rng T(n) f(n) vi mi n. Thông thng f(n) là mt trong các hàm quen thuc nh logn, n, nlogn, n2, n3, 2n, n!, nn. ôi khi chúng ta choán dng ca f(n) trong ó có mt vài tham s cha xác nh (chng hnf(n) = an2 vi a cha xác nh) và trong quá trình chng minh quy np ta s suy din ra giá tr thíchp ca các tham s.Ví d 1-11: Gii phng trình quy Gi s chúng ta oán f(n) = anlogn. Vi n = 1 ta thy rng cách oán nh vy không c bivì anlog n có giá tr 0 không ph thuc vào giá tr ca a. Vì th ta th tip theo f(n) = anlogn + b. Vi n = 1 ta có, T(1) = C1 và f(1) = b, mun T(1) f(1) thì b C1 (*) Gi s rng T(k) aklogk + b vi mi k < n (I.2).Ta s chng minh T(n) anlogn + b Gi s n 2, t (I.1) ta có T(n) = 2T(n/2) + C2n Áp dng (I.2) vi 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] . Nu ly 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. Nu ta ly a và b sao cho c (*) và (**) u tho mãn thì T(n) an logn + b vi mi n. D dàng ta có b = C1 và a= C1 +C2 ta c T(n) (C1 + C2)nlogn + C1 vi mi n. Collected by The_Wall (11/10/2005)Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 10 Hay nói cách khác T(n) là O(nlogn).i gii tng quát cho mt lp các phng trình quy gii bài toán kích thc n, ta chia bài toán ã cho thành a bài toán con, mi bài tóan con cókích thc n/b. Gii các bài toán con này và tng hp kt qu li c kt qu ca bài toán ã cho.i các bài toán con chúng ta cng làm nh vy. K thut này s dn chúng ta n mt chng trình quy. Gi thit rng mi bài toán con kích thc 1 ly mt n v thi gian và thi gian chia bàitoán kích thc n thành các bài toán con kích thc n/b và tng hp kt qu t các bài toán con c li gii ca bài toán ban u là d(n). (Chng hn i vi thí d MergeSort, chúng ta có a = b = 2,và d(n) = C2n/C1. Xem C1 là mt n v). Gi T(n) là thi gian gii bài toán kích thc n thì ta có phng trình quy: Ta s dng phng pháp truy hi gii phng trình này Gi s n = bk ta c: T(n/bk) = T(1) = 1. Thay vào trên vi i = k ta có: Hàm tin trin, nghim thun nht và nghim riêng Trong phng trình quy (I.1) hàm thi gian d(n) c gi là hàm tin trin (drivingfunction) Trong công thc (I.2), ak = nlogbac gi là nghim thun nht (homogeneous solutions). Nghim thun nht là nghim chính xác khi d(n) = 0 vi mi n. Nói mt cách khác, nghimthun nht biu din thi gian gii tt c các bài toán con. [...]... nhng bài tốn mà q trình phân tích thì n gin nhng vic tng hp kt qu li rt khó khn. Trong các phn tip sau ta s trình bày mt s ví d thy rõ hn u này. thut này s cho chúng ta mt gii thut quy mà vic xác nh phc tp ca nó s phi gii mt phng trình quy nh trong chng I ã trình bày. Collected by The_Wall (11/10/2005) Giáo trình mơn Phân tích Gii Thut –... The_Wall (11/10/2005) Giáo trình mơn Phân tích Gii Thut – I C CN TH Trang 1 1. Mc tiêu 2. Kin thc c bn cn có hc chng này 3. Tài liu tham kho có liên quan n chng 4. 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.... trang k tip Trong chng này 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 PHÂN TÍCH GII THUT Trong khi gii mt bài tốn chúng ta có th có mt s gii thut khác nhau,... do con trái ca a[5] là a[10] là mt nút lá nên vic y xung ca a[5] kt thúc. Collected by The_Wall (11/10/2005) Giáo trình mơn Phân tích Gii Thut – I C CN TH Trang 4 I.4.3- Qui tc tng qt phân tích mt chng trình I.4.4- phc tp ca chng trình có gi chng trình con khơng qui Cách tính phc tp ca mt gii thut bt k là mt vn không n gin. Tuy nhiên ta có th... thc nh hn na. Q trình trên dn n nhng bài toán mà li gii chúng là hin nhiên hoc dàng thc hin, ta gi các bài tốn này là bài tốn c s. Tóm li k thut chia tr bao gm 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 hp kt qu t bài tốn c s có li gii ca bài toán ban u. Tuy nhiên i vi t s bài tốn, thì q trình phân tích ã cha ng vic... chng trình s dng mt vài 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 hin chng trình khơng c cao vì dù sao thì chng trình ó cng ch s dng mt vài 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. .. a[10] ã c sp. Thc hin vic y a[1] xung úng v trí ca 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 Gii Thut – I C CN TH Trang 23 Hai con nháy L, R sc s dng thc hin vic phân hoch nhã trình bày trong phn 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 Gii Thut – I C CN TH Trang 33 B: array[keytype] of ListType; {Ta gi thit keytype là kiu min 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 ly O(n) thi gian... 0 n 9. K mt ta phân phi phn t a[i] vào bin có ch s a[i].key MOD 10. Ni các bin li vi nhau ta c danh sách có khóa là: 0 1 81 64 4 25 36 16 9 49. K hai s dng kt qu ca k 1 sp tip. Phân phi phn t a[i] vào bin có ch s a[i].key DIV 10. Ni các bin li vi 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 Gii Thut – I... toán ng i ca ngi 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 Gii Thut – I C CN 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: Sp xp theo hai k Theo s phân tích gii thut Bin Sort thì mi k ly O(n) thi gian, hai k này ni tip nhau nên thi gian tng . các phn: gii thut, ví d, chng 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 Gii Thut – I C CN TH........................................................................Trang. ln nênI.5- PHÂN TÍCH CÁC CHNG TRÌNH QUYI.5.1- Thành lp phng trình quyI.5.2- Gii phng trình quy Vi các chng trình có gi