Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
1,14 MB
Nội dung
Collected by The_Wall (11/10/2005) Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 67 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: IV.1 - Mô hình x lý ngoài. IV.2 - ánh giá các gii thut x lý ngoài. IV.3 - Sp xp ngoài. IV.4 - Lu tr thông tin trong tp tin. Trong chng này chúng ta s nghiên cu hai vn chính là sp xp d liu c l u trong nh ngoàivà k thut lu tr tp tin. Trong k thut lu tr tp tin chúng ta s s dng các cu trúc liu tun t, bng bm, tp tin ch mc và cu trúc B-cây. IV.1- MÔ HÌNH X LÝ NGOÀI Trong các gii thut mà chúng ta ã cp t trc ti nay, chúng ta ã gi s rng s lng các d liu vào là khá nh có th cha ht b nh trong (main memory). Nhng u gì s xy ra u ta mun x lý phiu u tra dân s toàn quc hay thông tin v qun lý t ai c nc chng hn? Trong các bài toán nh vy, s lng d liu vt quá kh nng lu tr ca b nh trong. có th gii quyt các bài toán ó chúng ta phi dùng b nh ngoài lu tr và x lý. Các thit b lu tr ngoài nh bng t, a tu có kh nng lu tr ln nhng c m truy nhp hoàn toàn khác vi b nh trong. Chúng ta cn tìm các cu trúc d liu và gii thut thích hp cho vic x lý d liu lu tr trên b nh ngoài. Kiu d liu tp tin là kiu thích hp nht cho vic biu din d liu c lu trong b nh ngoài. Hu hành chia b nh ngoài thành các khi (block) có kích thc bng nhau, kích thc này thay i tùy thuc vào hu hành nhng nói chung là t 512 bytes n 4096 bytes. Trong quá trình x lý, vic chuyn giao d liu gia b nh trong và b nh ngoài c tin hành thông qua vùng nhm (buffer). Bm là mt vùng dành riêng ca b nh trong mà kích thc bng vi kích thc ca mt khi ca b nh ngoài. Có th xem mt tp tin bao gm nhiu mu tin c lu trong các khi . Mi khi lu mt s nguyên vn các mu tin, không có mu tin nào b chia ct lu trên hai khi khác nhau. Trong thao tác c, nguyên mt khi ca tp tin c chuyn vào trong bm và ln lt c các mu tin có trong bm cho ti khi bm rng thì li chuyn mt khi t b nh ngoài vào m. ghi thông tin ra b nh ngoài, các mu tin ln lt c xp vào trong bm cho n khi y bm thì nguyên mt khi c chuyn ra b nh ngoài. Khi ó bm tr nên rng và li có th xp tip các mu tin vào trong ó. Collected by The_Wall (11/10/2005) Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 68 Nh vy n v giao tip gia b nh trong và bm là mu tin còn gia bm và b nh ngoài là khi. Hình 4-1 mô t hat ng ca b nh trong, bm và b nh ngoài trong thao tác c và ghi p tin IV.2- ÁNH GIÁ CÁC GII THUT X LÝ NGOÀI i vi b nh ngoài thì thi gian tìm mt khi c vào b nh trong là rt ln so vi thi gian thao tác trên d liu trong khi ó. Ví d gi s ta có mt khi có th lu 1000 s nguyên c u trên a quay vi vn tc 1000 vòng/ phút thì thi gian a u t vào rãnh cha khi và quay a a khi n chu t ht khong 100 mili giây. Vi thi gian này máy có th thc hin 100000 lnh, tc là sp xp các s nguyên này theo gii thut QuickSort. Vì vy khi ánh giá các gii thut thao tác trên b nh ngoài, chúng ta tp trung vào vic xét s ln c khi vào b nh trong và s ln ghi khi ra b nh ngoài ta gi chung là phép truy xut khi (block access). Vì kích thc các khi là cnh nên ta không th tìm cách tng kích thc mt khi mà chúng ta phi tìm cách gim s ln truy xut khi. IV.3- SP XP NGOÀI IV.3.1- Sp xp trn IV.3.2- Ci tin sp xp trn IV.3.3- Trn nhiu ng Sp xp d liu c t chc nh mt tp tin hoc tng quát hn, sp xp d liu c lu trên b nh ngoài gi là sp xp ngoài. IV.3.1- Sp xp trn (merge sorting) Khái nim vng ng dài k là mt tp hp k mu tin ã oc sp th t theo khoá tc là, nu các mu tin r 1 , r 2 , ., r k có khoá ln lt là k 1 , k 2 , ., k k to thành mt ng thì k 1 k 2 . k k . Cho tp tin cha các mu tin r 1 , r 2 , ., r n , ta nói tp tin c t chc thành ng có dài k u ta chia tp tin thành các n k mu tin liên tip và mi n là mt ng, n cui có th không có k mu tin, trong trng hp này ta gi n y là uôi (tail). Ví d 4-1: Tp tin gm 14 mu tin có khóa là các s nguyên c t chc thành 4 ng dài 3 và mt uôi có dài 2 5 6 9 13 26 27 1 5 8 12 14 17 23 25 Collected by The_Wall (11/10/2005) Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 69 Gii thut sp xp tp tin F có n mu tin ta s dng 4 tp tin F1, F2, G1 và G2. Khi u ta phân phi các mu tin ca tp tin ã cho F luân phiên vào trong hai tp tin F1 F2. Nh vy hai tp tin này c xem nhc t chc thành các ng dài 1. c 1:c 2 ng, mi ng dài 1 t hai tp tin F1, F2 và trn hai ng này thành ng dài 2 và ghi luân phiên vào trong hai tp tin G1, G2. i vai trò ca F1 cho G1, F2 cho G2. c 2:c 2 ng, mi ng dài 2 t hai tp tin F1, F2 và trn hai ng này thành ng dài 4 và ghi luân phiên vào trong hai tp tin G1, G2. i vai trò ca F1 cho G1, F2 cho G2. Quá trình trên c tip tc và sau i bc thì dài ca mt ng là 2 i . Nu 2 i n thì gii thut t thúc, lúc ó tp tin G2 s rng và tp tin G1 cha các mu tin ã c sp. ánh giá gii thut sp xp trn Ta thy gii thut kt thúc sau i bc vi i logn. Mi bc phi c t 2 tp tin và ghi vào 2 p tin, mi tp tin có trung bình n/2 mu tin. Gi s mi mt khi lu trc b mu tin thì mi bc n c và ghi khi mà chúng ta cn logn bc vy tng cng chúng ta cn phép truy xut khi. Ví d 4-2: Cho tp tin F có 23 mu tin vi khóa là các s nguyên nh sau: F: 28 31 3 5 93 96 10 40 54 85 65 9 30 39 90 13 10 8 69 77 8 10 22 bt u ta phân phi các mu tin ca F luân phiên vào hai tp tin F1 và F2 c t chc thành các ng có dài 1 28 3 93 10 54 65 30 90 10 69 8 22 F1 31 5 96 40 85 9 39 13 8 77 10 F2 Bc 1: Trn các ng dài 1 ca F1 và F2 c các ng dài 2 và ghi luân phiên vào trong hai tp tin G1, G2: G1: 28 31 93 96 54 85 30 39 8 10 8 10 F1 G2: 3 5 10 40 9 65 13 90 69 77 22 F2 Bc 2: i vai trò ca F1 và G1, F2 và G2 cho nhau. Trn các ng dài 2 trong hai tp tin F1 và F2 c các ng dài 4 ri ghi luân phiên vào trong hai tp tin G1 và G2: G1: 3 5 28 31 9 54 65 85 8 10 69 77 F1 G2: 10 40 93 96 13 30 39 90 8 10 22 F2 Collected by The_Wall (11/10/2005) Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 70 Bc 3: i vai trò ca F1 và G1, F2 và G2 cho nhau. Trn các ng dài 4 trong hai tp tin F1 và F2 c các ng dài 8 ri ghi luân phiên vào trong hai tp tin G1 và G2: G1: 3 5 10 28 31 40 93 96 8 8 10 10 22 69 77 F1 G2: 9 13 30 39 54 65 85 90 F2 Bc 4: i vai trò ca F1 và G1, F2 và G2 cho nhau. Trn các ng dài 8 trong hai tp tin F1 và F2 c các ng dài 16 ri ghi luân phiên vào trong 2 tp tin G1 và G2. G1: 3 5 9 10 13 28 30 31 39 40 54 65 85 90 93 96 F1 G2: 8 8 10 10 22 69 77 F2 Bc 5: i vai trò ca F1 và G1, F2 và G2 cho nhau. Trn các ng dài 16 trong hai tp tin F1 và F2 c 1 ng dài 23 ri ghi vào trong tp tin G1. G1: 3 5 8 8 9 10 10 10 13 22 28 30 31 39 40 54 65 77 85 90 93 96 Tp tin G1 cha các mu tin ã c sp còn tp tin G2 rng. Chng trình procedure Merge(k:integer; f1,f2,g1,g2: File of RecordType); {Th tc này trn các ng dài k và trong hai tp tin f1 và f2 thành các ng dài 2k và ghi luân phiên vào trong hai tp tin g1 và g2} var OutSwithh : boolean; {Nu OutSwitch = TRUE thì ghi vào tp tin g1, ngc li ghi vào g2} Winner: integer; { chnh mu tin hin hành nào trong hai tp tin f1 và f2 sc ghi ra tp tin g1 hoc g2} Used: array[1 2] of integer; { Used[ij] ghi s mu tin ã c c trong ng hin ti ca tp tin fj } Fin : array[1 2] Of boolean; {Fin[j] s có giá tr TRUE nu ã c ht các mu tin trong ng hin hành ca fj hoc ã dn cui tp tin fj } Current: array[1 2] Of RecordType; { Current[j] lu mu tin hin hành ca tp tin f[j]} procedure GetRecord(i:integer); {Nu ã c ht các mu tin trong ng hin hành ca tp tin fi hoc ã n cui tp tin fi thì t fin[i] = TRUE nu không thì c mt mu tin ca tp tin fi vào trong current[i]} begin Used[i] := Used[i] + 1; if (Used[i] = k+1 ) or (i = 1) and ( eof(f1)) or (i = 12 and ( eof(f2)) then fin[i] := TRUE Collected by The_Wall (11/10/2005) Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 71 else if i=1 then Read(f1, current[1]) else read(f2, current[2]); end; begin { Khi to } OutSwitch := TRUE; ReSet(f1); ReSet(f2); ReWrite(g1); ReWrite(g2); while (not eof(f1)) or (not eof(f2)) do begin {Bt u c các mu tin t trong hai ng hin hành ca hai tp tin f1,f2 } Used[1] := 0; Used[2] := 0; Fin[1] := FALSE ; Fin[2] := FALSE ; GetRecord(1) ; GetRecord(2); while ( not fin[1] ) or (not fin[2]) do begin {Trn hai ng } { Chn Winner } if Fin[1] then Winner := 2 else if Fin[2] then Winner := 1 else if current[1].key < Current[2].key then Winner := 1 else Winner := 2; if OutSwitch then Write(g1, Current[winner] ) else Write(g2, current[winner] ); GetRecord(Winner); end; OutSwitch := Not OutSwitch; end; end; IV.3.2.Ci tin sp xp trn Ta thy quá trình sp xp trn nói trên bt u t các ng dài 1 cho nên phi sau logn c gii thut mi kt thúc. Chúng ta có th tit kim thi gian bng cách chn mt s k thích hp sao cho k mu tin có th cha trong b nh trong. Mi ln c vào b nh trong k mu tin, dùng p xp trong (chng hn dùng QuickSort) sp xp k mu tin này và ghi luân phiên vào hai tp tin F1 và F2. Nh vy chúng ta bt u sp xp trn vi các tp tin c t chc thành các ng dài k. Sau i bc thì dài mi ng là k2 i . Gii thut s kt thúc khi k2 i n hay i log . Do ó phép truy xut khi s là . D thy c là ta tng c tc sp xp trn. Ví d 4-3: Ly tp tin F có 23 mu tin vi khóa là các s nguyên nh trong ví d 4-2 F: 28 31 3 5 93 96 10 40 54 85 65 9 30 39 90 13 10 8 69 77 8 10 22 Ta gi s b nh trong có th cha c 3 mu tin, ta c ln lt 3 mu tin ca F vào b nh trong , dùng mt sp xp trong sp xp chúng và ghi phiên vào 2 tp tin F1 và F2. Collected by The_Wall (11/10/2005) Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 72 3 28 31 10 40 54 30 39 90 8 69 77 F1 5 93 96 9 65 85 8 10 13 10 22 F2 c 1: Trn các ng dài 3 ca F1 và F2 c các ng dài 6 và ghi luân phiên vào trong hai tp tin G1, G2: G1: 3 5 28 31 93 96 8 10 13 30 39 90 F1 G2: 9 10 40 54 65 85 8 10 22 69 77 F2 c 2:i vai trò ca F1 và G1, F2 và G2 cho nhau. Trn các ng dài 6 trong 2 tp tin F1 và F2 c các ng dài 12 ri ghi luân phiên vào trong 2 tp tin G1 và G2: G1: 3 5 9 10 28 31 40 54 65 85 93 96 F1 G2: 8 8 10 10 13 22 30 39 69 77 90 F2 c 3:i vai trò ca F1 và G1, F2 và G2 cho nhau. Trn các ng dài 12 trong 2 tp tin F1 và F2 c 1 ng ghi vào trong tp tin G1, còn G2 rng G1: 3 5 8 8 9 10 10 10 13 22 28 30 31 39 40 54 65 77 85 90 93 96 Tp tin G1 cha các mu tin ã c sp còn tp tin G2 rng. IV.3.3- Trn nhiu ng (multiway merge) Gii thut sp xp tp tin F có n mu tin ta s dng m tp tin (m là mt s chn) F[1], F[2], ., F[m]. Trong trng hp m=4 ta có gii thut sp xp trn bình thng. Gi h = m/2, ta có ni dung ca phng pháp nh sau (ta vn gi s b nh trong có th cha k mu tin). Khi u: Mi ln c t tp tin F vào b nh trong k mu tin, s dng mt sp xp trong p xp k mu tin này thành mt ng ri ghi luân phiên vào các tp tin F[1], F[2], . , F[h]. c 1: Trn các ng dài k ca h tp tin F[1], F[2], ., F[h] thành mt ng dài kh và ghi luân phiên vào trong h tp tin F[h+1], F[h+2], . , F[m]. i vai trò ca F[i] và F[h+i]] cho nhau (vi 1 i h). c 2: Trn các ng dài kh ca h tp tin F[1], F[2], ., F[h] thành mt ng dài kh 2 và ghi luân phiên vào trong h tp tin F[h+1], F[h+2], . , F[m]. i vai trò ca F[i] và F[h+i]] cho nhau (vi 1 i h). Collected by The_Wall (11/10/2005) Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 73 Sau i bc thì dài mi ng là khi và gii thut kt thúc khi kh i n và khi ó tp tin ã c sp chính là mt ng ghi trong F[h+1]. ánh giá gii thut sp xp trn nhiu ng Theo trên thì gii thut kt thúc sau i bc, vi kh i n hay . Mi bc ta phi c t h p tin và ghi vào trong h tp tin, trung bình mi tp tin có n/h mu tin. Ta vn gi s mi khi lu c b mu tin thì mi bc phi truy xut khi. Do chúng ta cn c nên tng cng ta ch cn phép truy xut khi.Ta thy rõ ràng và th tc mergeSort nói trên là mt trng hp c biêt khi h = 2. Ví d 4-4: Ly tp tin F có 23 mu tin vi khóa là các s nguyên nh trong ví d 4-2 F: 28 31 3 5 93 96 10 40 54 85 65 9 30 39 90 13 10 8 69 77 8 10 22. S dng 6 tp tin sp xp tp tin F. Ta gi s b nh trong có th cha c 3 mu tin, ta c ln lt 3 mu tin ca F vào b nh trong , dùng mt sp xp trong sp xp chúng và ghi phiên vào 3 tp tin F[1], F[2] và F[3] nh sau: F[1]: 3 28 31 9 65 85 8 69 77 F[2]: 5 93 96 30 39 90 10 22 F[3]: 10 40 54 8 10 13 c 1: Trn các ng ü dài 3 trong các tp tin F[1], F[2], F[3] thành các ng dài 9 và ghi vào trong các tp tin F[4], F[5] và F[6]. F[4]: 3 5 10 28 31 40 54 93 96 F[1] F[5]: 8 9 10 13 30 39 65 85 90 F[2] F[6]: 8 10 22 69 77 F[3] c 2:i vai trò ca F[1] cho F[4], F[2] cho F[5] và F[3] cho F[6]. Trn các ng dài 9 trong các tp tin F[1], F[2], F[3] thành 1 ng dài 23 và ghi vào trong tp tin F[4]. F[4]: 3 5 8 8 9 10 10 10 13 22 28 30 31 39 40 54 65 77 85 90 93 96 Tp tin F[4] cha các mu tin ã c sp còn F[5] và F[6] rng. IV.4- LU TR THÔNG TIN TRONG TP TIN IV.4.1- Tp tin tun 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 74 IV.4.2- Tng tc cho các thao tác tp tin IV.4.3- Tp tin bm IV.4.4- Tp tin ch mc IV.4.5- Cu trúc B-cây Trong phn này ta s nghiên cu các cu trúc d liu và gii thut cho lu tr (storing) và ly thông tin (retrieving) trong các tp tin c lu tr ngoài. Chúng ta s coi mt tp tin nh là mt chui tun t các mu tin, mi mu tin bao gm nhiu trng (field). Mt trng có th có dài cnh hoc dài thay i. ây ta s xét các mu tin có dài cnh và kho sát các thao tác trên tp tin là: · Insert: Thêm mt mu tin vào trong mt tp tin, · Delete: Xoá mt mu tin t trong tp tin, · Modify: Sa i thông tin trong các mu tin ca tp tin, và · Retrieve: Tìm li thông tin c lu trong tp tin. Sau ây ta s nghiên cu mt s cu trúc d liu dùng lu tr tp tin. Vi mi cu trúc chúng ta s trình bày t chc, cách thc tin hành các thao tác tìm, thêm, xoá mu tin và có ánh giá cách t chc ó. Sánh giá ây ch yu là ánh giá xem tìm mt mu tin thì phi c bao nhiêu khi vì các thao tác khác u phi s dng thao tác tìm. IV.4.1- Tp tin tun t chc: Tp tin tun t là mt danh sách liên kt ca các khi, các mu tin c lu tr trong các khi theo mt th t bt k. Tìm mu tin: Vic tìm kim mt mu tin có giá tr xác nh c thc hin bng cách c ng khi, vi mi khi ta tìm mu tin cn tìm trong khi, nu không tìm thy ta li c tip mt khi khác. Quá trình c tip tc cho n khi tìm thy mu tin hoc duyt qua toàn b các khi ca tp tin và trong trng hp ó thì mu tin không tn ti trong tp tin. Thêm mu tin mi: Vic thêm mt mu tin có th thc hin n gin bng cách a mu tin này vào khi cui cùng ca tp tin nu nh khi ó còn ch trng. Ngc li nu khi cui cùng ã ht ch thì xin cp thêm mt khi mi, thêm mu tin vào khi mi và ni khi mi vào cui danh sách. a i mu tin: sa i mt mu tin có giá tr cho trc, ta tìm mu tin cn sa i ri thc hin các sa i cn thit sau ó ghi li mu tin vào v trí c trong tp tin. Xoá mu tin: xoá mt mu tin, trc ht ta cng cn tìm mu tin ó, nu tìm thy ta có th thc hin mt trong các cách xoá sau ây: Mt là xoá mu tin cn xoá trong khi lu tr nó, nu sau khi xoá, khi tr nên rng thì xoá khi khi danh sách (gii phóng b nh). Hai là ánh du xoá mu tin bng mt cách nào ó. Ngha là ch xoá mu tin mt cách logic, vùng không gian nh vn còn dành cho mu tin. Vic ánh du có thc thc hin bng mt trong Collected by The_Wall (11/10/2005) Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 75 · Thay th mu tin bng mt giá tr nào ó mà giá tr này không bao gi là giá tr tht ca t k mt mu tin nào. · Mi mt mu tin có mt bít xóa, bình thng bit xóa ca mu tin có giá tr 0, mun xóa u tin ta t cho bit xóa giá tr 1. Vi phng pháp này thì mt mu tin sau khi bánh du xoá cng có th phc hi c bng cách t bit xoá ca mu tin giá tr 0. ánh giá:ây là mt phng pháp t chc tp tin n gin nht nhng kém hiu qu nht. Ta thy tp tin là mt danh sách liên kt ca các khi nên các thao tác trên tp tin u òi hi phi truy xut hu nh tt c các khi, t khi u tiên n khi cui cùng. I IV.4.2- Tng tc cho các thao tác tp tin Nhc m ca cách t chc tp tin tun t trên là các thao tác trên tp tin rt chm. ci thin tc thao tác trên tp tin, chúng ta phi tìm cách gim s phép truy xut khi. Mun vy phi tìm các cu trúc sao cho khi tìm mt mu tin ch cn phép truy xut mt s nh các khi ca tp tin. to ra các t chc tp tin nh vy chúng ta phi gi s rng mi mu tin có mt khoá (key), ó là mt tp hp các trng mà cn c vào ó ta có th phân bit các mu tin vi nhau. Chng hn mã sinh viên trong mu tin v sinh viên, bin s xe trong qun lí các phng tin vn ti ng b. Sau ây ta s xét mt s cu trúc nh th. IV.4.3- Tp tin bm (hash files) chc: Ta s s dng bng bm m lu tr tp tin. Bng bm là mt bng có m phn t, i phn tc ánh s t 0 n m-1 (n gin nht là mng mt chiu B gm m phn t B[0], B[1], ., B[m-1]). Mi phn t là mt con tr, tr ti phn tu tiên ca danh sách liên kt các khi. phân phi các mu tin có khóa x vào trong các danh sách liên kt, ta dùng hàm bm (hash function). Hàm bm h(x) ánh x mi giá tr khoá x vi mt s nguyên t 0 n m-1. Nu h(x) = i thì u tin r có khóa x sc a vào mt khi nào ó trong danh sách liên kt c tr bi B[i]. Có nhiu phng pháp xác nh hàm bm. Cách n gin nht là “nguyên hóa” giá tr khóa x (nu x không phl là mt s nguyên) sau ó ta cho h(x) = x MOD m. Ví d 4-5: Mt tp tin có 24 mu tin vi giá tr khóa là các s nguyên: 3, 5, 12, ,65, 34, 20, 21, 17, 56, 1, 16, 2, 78, ,94, 38 ,15 ,23, 14, 10, 29, 19, 6, 45, 36 Gi s chúng ta có th t chc tp tin này vào trong bng bm gm 7 phn t và gi s mi khi có th cha c ti a 3 mu tin. Vi mi mu tin r có khóa là x ta xác nh h(x) = x MOD 7 và a mu tin r vào trong mt khi ca danh sách liên kt c tr bi B[h(x)]. Collected by The_Wall (11/10/2005) Giáo trình môn Phân tích Gii Thut – I C CN TH Trang 76 Tìm mu tin: tìm mt mu tin r có khóa là x, chúng ta xác nh h(x) chng hn h(x) = i khi ó ta ch cn tìm r trong danh sách liên kt c tr bi B[i]. Chng hn tìm mu tin r có khóa là 36, ta tính h(36) = 36 MOD 7 = 1. Nh vy nu mu tin r tn ti trong tp tin thì nó phi thuc mt khi nào ó c tr bi B[1]. Thêm mu tin: thêm mu tin r có khoá x, trc ht ta phi tìm xem ã có mu tin nào trong tp tin có khóa x cha. Nu có ta cho mt thông báo li vì theo gi thit các mu tin không có khoá trùng nhau. Ngc li ta s tìm mt khi (trong danh sách các khi ca lô c tr bi B[h(x)]) còn ch trng cho mu tin r và thêm nó vào khi này. Nu không còn khi nào ch cho mu tin i ta yêu cu h thng cp phát mt khi mi và t mu tin r vào khi này ri ni khi mi này vào cui danh sách liên kt ca lô. Xoá mu tin: xoá mu tin r có khoá x, trc ht ta tìm mu tin này và t bít xoá ca nó. Ta cng có th xoá hn mu tin r và nu vic xoá này làm khi tr nên rng thì ta gii phóng khi này (xoá khi khi danh sách liên kt các khi). ánh giá: Gi s tp tin có n mu tin và mi khi lu trc k mu tin thì tp tin cn n/k khi. Trung bình mi danh sách liên kt có n/km khi, mà chúng ta ch tìm trong mt danh sách liên t nên ta ch phi truy xut n/km khi. S này nh hn m ln so vi cách t chc tp tin tun t (trong p tin tun t ta cn truy xut tt c các khi, tc là n/k khi). Chng hn vi 24 mu tin nh trong ví trên, vi cách t chc tp tin tun t ta cn úng 8 khi lu tr (vì mi khi cha ti a 3 mu tin). Nh vy tìm mt mu tin, chng hn mu tin có khóa 36 chúng ta phi c úng 8 khi (do u tin có khóa 36 nm trong khi cui cùng). Nhng vi cách t chc tp tin bng bm chúng ta ch n trung bình 24/(3*7) ln c khi . Trong thc t ta ch cn 2 ln c khi (vì mu tin có khóa 36 m trong khi th 2 ca lô c tr bi B[1]). IV.4.4- Tp tin ch mc (index file) chc: Mt cách khác thng gp là tp tin c sp xp theo khoá, ri chúng ta tin hành tìm kim nh là tìm mt t trong tn, tc là tìm kim theo tu tiên trên mi trang. thc hin c u ó ta s dng hai tp tin: Tp tin chính và tp tin ch mc tha (sparse index). Tp tin chính bao gm các khi lu các mu tin ã c sp th t theo giá tr khóa. Tp tin ch mc tha bao gm các khi cha các cp (x, p) trong ó x là khoá ca mu tin u tiên trong mt khi ca tp tin chính, còn p là con tr, trn khi ó. [...]... áp d ng th t c xen quy xen vào P m t khóa k’ và con tr p' ng ng c a nút lá L’ (k' là khoá c a m u tin u tiên trong L') Trong tr ng h p tr c khi xen k' và p’ , P ã có m con thì ta ph i c p thêm m t kh i m i P’ và chuy n m t s con c a P sang P’ và xen con m i vào P ho c P’ sao cho c P và P’ u có ít nh t [m/2] con Vi c chia c t P này òi h i phaií xen m t khóa và m t con tr vào nút cha c a P Quá trình... 4-6: Ví d 4-10: Thêm m u tin r có khoá 23 vào trong t p tin bi u di n b i B-cây trong ví d 4-8 (hình 4-5) · Quá trình tìm ki m i t nút G C, qua P2 và t i nút lá L5 · Vì L5 ã 3 m u tin nên ph i t o ra m t nút lá m i L’5 và chuy n 2 m u tin có khóa 24, 26 sang L’5 sau ó xen r vào L5 · Giá tr khóa c a m u tin u tiên trong L’5 là 24, ta ph i xen 24 và con tr c a L’5 vào P2, nh ng P2 ã có 5 con v y c n t o... thì gi i phóng L và n u s con c a P bây gi nh n [m/2] thì ki m tra nút P’ ngay bên trái ho c bên ph i và cùng m c v i P N u P’ có ít nh t [m/2] + 1 con, chúng ta chuy n m t con P’ sang P Lúc này c P và P’ có ít nh t [m/2] con Sau ó ta ph i c p nh t l i giá tr khóa c a P và P’ trong cha c a chúng, và n u c n chúng ta ph i s a c trong t tiên c a chúng N u P’ có úng [m/2] con, ta n i P và P’ thành m t... p khóa, con tr t ng ng i 34 và 38 sang P’2 và xen c p con tr , khóa 24 vào P2 Giáo trình môn Phân tích Gi i Thu t – I C C N TH Trang 80 Collected by The_Wall (11/10/2005) · Do có m t nút m i P’2 nên ph i xen vào cha c a P2 ( ây là nút G C) m t c p khóa, con tr tr t i P’2 Con tr p0 c a nút P’2 tr t i nút lá L6, giá tr khóa u tiên c a L6 là 28 Giá tr này ph i c xen vào nút G C cùng v i con tr... nút g c và c ng có th ph i chia c t nút g c, trong tr ng h p này ph i t o ra m t nút g c m i mà hai con c a nó là hai a c a nút g c c Khi ó chi u cao c a B-cây s t ng lên 1 Ví d 4-9: Thêm m u tin r có khoá 19 vào t p tin c bi u di n b i B-cây trong ví d 4-8 · Quá trình tìm ki m s xu t phát t G C i qua P2 và d n t i nút lá L4 · Trong nút lá L4 còn K t qu vi c xen ta ch xen r vào úng v trí và gi i thu... a ví d 10 · Quá trình tìm ki m, xu t phát t nút G C, i qua P1 và l n n nút lá L2 · Xóa m u tin r kh i L2 · L2 bây gi tr nên r ng, gi i phóng L2 · Xóa giá tr khóa 10 và con tr c a L2 trong P1, P1 bây gi ch có 2 con (2 < [5/2]) · Xét nút P2, bên ph i và cùng c p v i P1, P2 có úng [5/2] = 3 con nên ta n i P1 và P2 P1 có úng 5 con, · Xóa khóa và con tr c a P2 trong nút G C, ta Giáo trình môn Phân tích Gi... khóa x vào trong t p tin, ta ph i dùng th t c tìm ki m xác nh m t kh i Bi nào ó có th ch a m u tin r N u Bi còn ch tr ng thì xen r vào úng v trí c a nó trong Bi Ta ph i ch nh l i p tin ch m c n u m u tin m i tr thành m u tin u tiên trong kh i Bi N u Bi không còn ch tr ng xen thì ta ph i xét kh i Bi+1 có th chuy n m u tin cu i cùng trong kh i Bi thành m u tin u tiên c a kh i Bi+1 và xen m u tin r vào úng... sang Bm+1, m u tin cu i cùng c a Bm-1 sang Bm….xen m u tin r vào kh i Bi và c p nh t l i t p tin ch m c n ây chúng ta s th y r ng cách phân ph i các m u tin vào trong các kh i c a t p tin Giáo trình môn Phân tích Gi i Thu t – I C C N TH Trang 77 Collected by The_Wall (11/10/2005) chính, n u còn tr l i m t s ch tr ng tuy có hao t n b nh ngoài nh ng l i r t thu n ti n cho vi c xen thêm các m u tin... là x vào trong B-cây, ta áp d ng th t c tìm ki m nói trên xác nh nút lá L mà m u tin này ph i n m trong ó N u kh i L này còn ch cho r thì ta thêm r vào sao cho úng th t c a nó trong kh i L và gi i thu t k t thúc N u L không còn ch cho r thì ta yêu c u h th ng c p phát m t kh i m i L' D i [b/2] (b là s m u tin nhi u nh t có th l u trong m t kh i) m u tin n m phân n a cu i kh i L sang L' r i xen r vào... l i r t thu n ti n cho vi c xen thêm các m u tin Ví d 4-7: Ch ng h n ta c n xen m u tin r v i khóa x=24 vào trong t p tin c bi u di n trong hình 4-3 Th t c tìm x trong t p tin ch m c xác nh c kh i c n xen r là kh i 3 Vì kh i 3 có 3 m u tin nên ph i chuy n m u tin có khóa 27 sang kh i 4 và xen r vào kh i 3 Vì kh i 4 c ng ã 3 m u tin nên xét kh i 5 í chuy n m u tin có khóa 38 thành m u tin u tiên c a . trong và bm là mu tin còn gia bm và b nh ngoài là khi. Hình 4-1 mô t hat ng ca b nh trong, bm và b nh ngoài trong thao tác c và. thut thao tác trên b nh ngoài, chúng ta tp trung vào vic xét s ln c khi vào b nh trong và s ln ghi khi ra b nh ngoài ta gi chung là phép