You are on page 1of 15

Bi 7: Bng bm

Ging vin: Hong Th ip Khoa Cng ngh Thng tin H Cng Ngh

KDLTT t in
Trng hp ring ca tp ng khi ta ch quan tm ti tm kim, xen, loi
L tp hp trong mi phn t l mt cp (kha, i tng) C th tm kim theo kha C th c sp hoc khng c sp

Cc php ton
find(k) tr v phn t c kha k. Nu khng tn ti phn t nh vy th tr v NULL. findAll(k) tr v danh sch cc phn t c kha k. insert(k, o) thm phn t (k, o) v tr v phn t ny remove(e) loi b phn t e entries() tr v danh sch tt c cc phn t size() tr v s lng phn t isEmpty() kim tra xem t in rng hay khng

Cc phn t c th c cng kha ng dng


nh x t vng ngha nh x tn min a ch IP
INT2203

Ci KDLTT t in bng mng


Nu kho ca d liu l s nguyn khng m v nm trong khong [0..SIZE-1]
c th s dng mt mng data c c SIZE d liu c kho k s c lu trong data[k] tm kim, xen, loi u thc hin trong thi gian O(1)

Thc t khng kh thi v


s phn t d liu c th rt nh so vi SIZE kho c th khng phi l s nguyn

Ta mun li dng tnh u vit ca php truy cp trc tip ca mng

INT2203

Phng php bm
Lu tp d liu trong mng T vi c l SIZE Hm bm: l hm ng vi mi gi tr kho k ca d liu vi mt ch s i (0 <= i <= SIZE-1)
D liu ny s c lu trong T[i] h : K {0,1,,SIZE-1} 0 1 Tnh a ch i Hm bm

Tp cc gi tr kho

SIZE-1
INT2203

Mng T

S va chm
Nu
c k1 k2 th h(k1) h(k2), v vic tnh ch s h(k) ng vi mi kho k ch i hi thi gian hng

th cc php ton tm kim, xen, loi ch cn thi gian O(1) Va chm


Trong thc t k1 k2 c th cho h(k1) = h(k2)

Gii quyt va chm nh th no?

INT2203

Hm bm
Hm bm tt
tnh nhanh v d dng m bo t va chm

Mt s hm bm
Kha l s nguyn khng m Phng php chia Phng php nhn Kha l xu k t: i xu thnh s nguyn khng m

INT2203

Kha l s nguyn khng m


Phng php chia
h(k) = k mod SIZE nhy cm vi c ca bng bm
chn SIZE hn ch xy ra va chm chn s nguyn t c dng c bit, chng hn c dng 4k+3

Phng php nhn


h(k) = (k - k) . SIZE K hiu x ch phn nguyn ca s thc x Thc t thng chn

= 1 0,61803399

INT2203

Kho l xu k t
Trc tin, i cc xu k t thnh cc s nguyn, dng bng m ASCII
Xu k t c th xem nh mt s trong h m c s 128 Sau chuyn sang h m c s 10 V d
NOTE N.1283 + O.1282 + T.128 + E = = 78.1283 + 79.1282 + 84.128 + 69

Nhc im: xu di cho kt qu vt qu kh nng biu din ca my tnh Ci tin: Xu k t thng c to thnh t 26 ch ci v 10 ch s, v mt vi k t khc. Thay 128 bi 37 Tnh s nguyn ng vi xu k t theo lut Horner V d
NOTE 78.373 + 79.372 + 84.37 + 69= = ((78.37 + 79).37 +84).37 +69
INT2203

Gii quyt va chm


D liu d1 vi kho k1 c lu trong T[i], i = h(k1). Ta cn thm d liu d2 vi kho k2
nu h(k2) = i th d liu d2 cn c t vo v tr no?

Cc phng php
Phng php nh a ch m (open addressing/probing) mi khi xy ra va chm, tin hnh thm d tm mt v tr cn trng trong bng v t d liu mi vo Phng php to dy chuyn (separate chaining) to ra mt CTDL lu gi tt c cc d liu c cng v tr i v gn CTDL ny vo v tr trong bng

INT2203

Phng php nh a ch m
Gi s v tr ng vi kho k l i, i=h(k)
T v tr ny chng ta ln lt xem xt cc v tr i0 , i1 , i2 ,, im , Trong i0 = i, im(m=0,1,2,) l v tr thm d ln th m. Dy cc v tr ny s c gi l dy thm d.

Xc nh dy thm d

Thm d tuyn tnh (linear probing) Dy thm d l i , i+1, i+2 , Thm d bnh phng (quadratic probing) Dy thm d l i , i + 12, i + 22, , i + m2, Bm kp (double hashing) Dy thm d l h1(k) + m h2(k), vi m = 0, 1, 2,

INT2203

Nhn xt
Thm d tuyn tnh
u im: cho php xt tt c cc v tr trong mng php insert lun thc hin c, tr khi mng y Nhc im: d liu tp trung thnh cc on tm kim tun t trong tng on

Thm d bnh phng

Bm kp

u im: trnh c nhc im ca thm d tuyn tnh Nhc im: khng cho php ta tm n tt c cc v tr trong mng php insert c th khng thc hin c nu c ca mng l s nguyn t, th thm d bnh phng cho php ta tm n mt na s v tr trong mng nu c ca mng v bc thm d h2(k) nguyn t cng nhau th phng php bm kp cho php tm n tt c cc v tr trong mng

INT2203

Cc php ton
Tm kim? Xen? Loi? Minh ha
SIZE = 11 Thm d tuyn tnh insert(388), insert(130), insert(13), insert(14), insert(926) find(47) remove(388), find(926)

INT2203

Phng php to dy chuyn

Hm bm h

u im

s d liu c lu khng ph thuc vo c ca mng Tm kim? Xen? Loi?


INT2203

Cc php ton

Hiu qu ca phng php bm


N Tham s SIZE Bm /c m: mc y (load factor) tng th kh nng va chm tng Khi thit k, cn nh gi max ca N la chn SIZE khng nn vt qu 2/3 Bm dy chuyn: di trung bnh ca mt dy chuyn

Bm /c m, Thm d tuyn tnh Thi gian trung bnh Tm kim thnh cng Tm kim tht bi
1 1 1 + 2 1

Bm /c m, Thm d bnh phng


ln (1 )

Bm dy chuyn

1+

1 1 1 + (1 )2 2

1 1

INT2203

Chun b bi ti
c chng 10 (Hng u tin)

INT2203

You might also like