Ch 9 TABLES AND INFORMATION RETRIEVAL 1. Id: Bkg h lg B 2. Rgl Ay 3. Tbl f V Sh 4. Tbl: A Nw Ab D Ty 5. Al: Rdx S 6. Hhg 7. Aly f Hhg 8. Cl: Cm f Mhd 9. Al: Th Lf Gm Rvd Ol D S d Pgm Dg I C++ T. 1, Ch 9, Tbl d Ifm Rvl 207 1999 P-Hll, I., U Sddl Rv, N.J. 07458
Id: Bkg h lg B By f ky m l, mbl ml h f m fw h lg m, vg (lwbd h hm). Ody bl lk y q ly m O(1). Bh bl lk d hg h h m l, h f fm vl. Th ky d f hg d h dx d f bl lk hv h m l : f fm h d l fh fm. Bh bl lk d hg lghm vd f fm f ky d l l y. I h h w dy wy mlm d v kd f bl g g. Svl my b dd v y fm m kd f bl, b h m qd m O(1). I bdd by h d dd h z f h bl. Th bl lk b m ff h y hg mhd. W hll mlm bly dfd bl wh y. I d dgh bw h b d mlm, w d: Cv Th dx dfg y f bly dfd bl ld h, wh h dx f y f y ld q bk. Id: Bkg h lg B D S d Pgm Dg I C++ T. 2, S. 9.1, Id: Bkg h lg B 208 1999 P-Hll, I., U Sddl Rv, N.J. 07458
F A f B Rg Dm (Idx ) Cdm (B y) I mhm f dfd m f w d d fm lm f h f lm f h d. If f f fm A B, h f g h lm f A q lm f B. Th A lld h dm f f, d h B lld h dm f f. Th b f B g j h lm h vl f f lld h g f f. F D S d Pgm Dg I C++ T. 8, S. 9.4, Tbl: A Nw Ab D Ty 214 1999 P-Hll, I., U Sddl Rv, N.J. 07458
DEFINITION A bl wh dx I d b y T f fm I T gh wh h fllwg. 1. Tbl : Evl h f y dx I. 2. Tbl gm: Mdfy h f by hgg vl fd dx I h w vl fd h gm. 3. C: S w f. 4. Clg: Rmv ll lm fm h dx I, h mg dm. 5. I: Adj w lm x h dx I d df dg vl f h f x. 6. Dl: Dl lm x fm h dx I d h f h lg mll dm. Idx Tbl (f) B y Ab d y Idx f A y Ay Imlm Sb g Tbl D S d Pgm Dg I C++ T. 9, S. 9.4, Tbl: A Nw Ab D Ty 215 1999 P-Hll, I., U Sddl Rv, N.J. 07458
Hh Tbl d blw 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 l b l v d x l g d w d m g f l y d f h f h x z f h w 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 w h l m l g d S wh y h hld h hh bl. U hh f k ky d m m dx h y. Th f wll glly m vl dff ky h m dx. If h dd d h l gv by h dx, h w fhd; hw w m m mhd lv h ll h my hv d bw w d wg g h m l. T hhg w m () fd gd hh f d (b) dm hw lv ll. Hh Tbl D S d Pgm Dg I C++ T. 15, S. 9.6, Hhg 221 1999 P-Hll, I., U Sddl Rv, N.J. 07458
Chg Hh F A hh f hld b y d qk m. A hh f hld hv v db f h ky h lly h g f d. Th l wy mk hh f k h ky, h, mx h gh v wy, d hby b dx h wll b fmly dbd v h g f d. N h h hg dm b hh f. If h f vld m h h m ky, h m gv h m l vy m, h ky b vd wh fl. T: Smm w g f h ky, d h mg h dx. Fldg: W my h ky vl d mb h v wy. Mdl hm: W my v h ky g, dvd by h z f h dx g, d k h md h l. A b d f ky f bd by kg h z f h bl (h dx g) b m mb. Chg Hh F D S d Pgm Dg I C++ T. 16, S. 9.6, Hhg 222 1999 P-Hll, I., U Sddl Rv, N.J. 07458
C++ Exml f Hh F W w hh f C++ f fmg ky g f gh lhm h g h g 0..hh z 1. W wh l Ky wh h mhd d f f h fllwg df: l Ky: bl Sg{ bl: h ky l( ) ; vd mk blk( ); // Add d h mhd. }; W h h mhd f h l Sg fm Ch 6. Th mhd ky l( ) m h h l f h Ky, blk f h Ky h lgh l h. Th fl mhd mk blk my Ky. hh( Ky &g) /* P: g h b hhd, g vl bw 0 d hh z 1. U: Mhd f h l Ky. */ { vl = 0; f ( = 0; < 8; ++) vl = 4 * vl + g.ky l(); vl % hh z; } W hv mly ddd h g d dg h f h gh h, mllyg by 4 h m. C++ Exml f Hh F D S d Pgm Dg I C++ T. 17, S. 9.6, Hhg 223 1999 P-Hll, I., U Sddl Rv, N.J. 07458
Cll Rl wh O Addg L Pbg: L bg wh h hh dd d h qlly f h g ky my. Th y hld b dd l, h wh h l l hd, h h d h f l f h y. Clg: b d f b d f b d f Qd Pbg: If h ll hh dd h, qd bg g l h + 1, h + 4, h + 9,..., h, l h + 2 (md hhz) f = 1, 2,... Oh mhd: Ky-dd m; Rdm bg. Cll Rl wh O Addg D S d Pgm Dg I C++ T. 18, S. 9.6, Hhg 224 1999 P-Hll, I., U Sddl Rv, N.J. 07458
Hh Tbl Sf hh z = 997; // m mb f z l Hh bl { bl: Hh bl( ); vd l( ); E d ( Rd &w y); E d v( Ky &g, Rd &fd) ; v: Rd bl[hh z]; }; Hh bl ::Hh bl( ); P: Th hh bl h b d d lzd b my. vd Hh bl ::l( ); P: Th hh bl h b ld d my. E d Hh bl ::v( Ky &g, Rd &fd) ; P: If y h hh bl h ky ql g, h fd k h vl f h y, d d. Ohw, d. Hh Tbl Sf D S d Pgm Dg I C++ T. 19, S. 9.6, Hhg 225 1999 P-Hll, I., U Sddl Rv, N.J. 07458
Hh Tbl I E d Hh bl ::( Rd &w y) /* P: If h Hh bl fll, d f vflw d. If h bl ldy m wh h ky f w y d f dl d. Ohw: Th Rd w y d h Hh bl d d. U: Mhd f l Ky, d Rd. Th f hh. */ { E d l = ; b, // C b h bl fll. m, // Im d f qd bg. b; // P ly bd h hh bl. Ky ll; // Nll ky f m. ll.mk blk( ); } b = hh(w y); b = 0; m = 1; whl (bl[b]!= ll // I h l my? && bl[b]!=wy // Dl ky? && b < (hh z + 1)/2) { // H vflw d? b ++; b = (b + m) % hh z; m += 2; // P m f x. } f (bl[b] == ll) bl[b] = w y; // I w y. l f (bl[b] == w y) l = dl ; l l = vflw; // Th bl fll. l; Hh Tbl I D S d Pgm Dg I C++ T. 20, S. 9.6, Hhg 226 1999 P-Hll, I., U Sddl Rv, N.J. 07458
Chd Hh Tbl Th lkd l fm h hh bl lld h. If h d lg, hd hh bl v. Cll l wh hg ml; lg blm. Th hh bl lf b mll h h mb f d; vflw blm. Dl qk d y hd hh bl. If h d vy mll d h bl ly fll, hg my k m. Chd Hh Tbl D S d Pgm Dg I C++ T. 21, S. 9.6, Hhg 227 1999 P-Hll, I., U Sddl Rv, N.J. 07458
Df: Cd f Chd Hh Tbl l Hh bl { bl: // Sfy mhd h. v: L<Rd> bl[hh z]; }; Th l L b y f h g lkd mlm f l dd Ch 6. C: Cl: Th mlm f h mly ll h f h l h y. T l h bl, w m l h lkd l h f h bl, g h L mhd l( ). Rvl: ql h(bl[hh(g)], g, ); I: bl[hh(w y)].(0, w y); Dl: E d Hh bl ::mv( Ky y &g, Rd &x); P: If h bl h y wh ky ql g, d f d, h y dld fm h hh bl d dd x. Ohw d f d. Cd f Chd Hh Tbl D S d Pgm Dg I C++ T. 22, S. 9.6, Hhg 228 1999 P-Hll, I., U Sddl Rv, N.J. 07458
P d Pfll 1. U -dw dg f y d, j y d f y lghm. 2. Bf dg dld, dd wh h d wll b qd. 3. F h dg d gmmg f l, Ch 6. 4. U h lgl f h d dd wh kd f bl. 5. L h f h d hl y dd whh dx f bl b f g bl f d. 6. I g hh bl, l h f h d d h qd hl y dd bw hg d ddg. 7. Hh f m lly b m-dgd f h kd f ky d f g h hh bl. 8. Rll fm h ly f hhg h m ll wll lm vbly. 9. F ddg, lg lkly b blm l h hh bl m h hlf fll. P d Pfll D S d Pgm Dg I C++ T. 36, Ch 9, Tbl d Ifm Rvl 242 1999 P-Hll, I., U Sddl Rv, N.J. 07458