当前位置:首页 > 申请书大全 > 【冲突处理方法】 解决冲突的方法有什么
 

【冲突处理方法】 解决冲突的方法有什么

发布时间:2019-08-01 09:33:58 影响了:

9. 3突冲理处方

 理处突冲方的

法常处理用突冲的路思  :个换置:位 开放址法地 一同位的置突对冲组象在一织起: 地址法链

 开

放址法定(pOe nAdresdsig)n一

产旦了冲生突该地址(已有其它元)素就,某 种按则规寻去找另 一地空

开放定址(Op法ne Addesrsnig

) 若发生第了 i冲突,试探次的一个地址将下增加id基,公式本是: h(keiy )=(h k(ye)di+ )om TdblaeSiez ( ≤1i

1

线.探测法性(LineraP orbing)

性探测线:法增量以列 序,12,…,…(aTlbeizeS 1)-循 试环探一下存储个址地。[ 例]设 键关序词为列{ 747,29,11,9,8,45,4,0,203},  列散表表长aTbeSlie z=31 (装因子 α 填 =9/1 ≈3 .069) ; 散列函数为:(heky ) =eykmo d11 。用 线探性测处法冲理,突出依次插列入的散后列,表并估算找性能

查键词关( ek) y散地址 列h(eyk)4 73 7729 7110 9 948 547 10 0 9230 8

关键词 key) 散(列址地 hke(y) 突次数冲

址地 操 插入47作插入 7入2插 插入191 入9插插 8入4插入 45 插20入 入插03

4

7 0

37 7

0

9 721

1

10 0

99 0

8 74 3

5

14 1

0029

33 0 68

0

1

2

34 747 474 7 4 74 477 4 747

4

5

6

7

7 7 7 77 77 7

8

9

1

0

1

1

2

1说

11 1明1 1111 1 11

310

92 9 22 92929 29 2

999 99

984 84

8 844

突冲 冲突无d1 = 1 无冲 突无冲突d3 3 =4 51d= 15 24 d30= 3 5 24 06 d =

注意6聚集””象

现散列查找表能分析性

成功均查找长度平(ASL)s 不成功平查均找度长 A(LuS)散列表

:(kHye key )冲突数次0 110 10 36 3 2470 54 6 7 70 8 921 9 9 01 084 3 1154 1 1 2023

分【析 】SAsL查:找中关表词的平键均找比较次查数其冲突次数(1加) SAL = s1(7+1+1+++124++24)+/9 =32/ ≈ 92.65ASL u:不散列表在的中键词的平关查均找数(不成次功 一般)法:将方在不散表中的列关键分词若类。 干:根据H如(ek)值分y类 AS uL (3+=2+1++21++11+98+++7)6 /11= 41 1/ 1≈ .337

[例] 将caso、edinf、feoal、etpxc、hra、taa、cenli、foolr,顺

次入一张存小为大6的散2列表。 中(Heky=k)ye0[-’]’,a采用性线测di=探i

a.csoa an thca define rxpefl oa ceil tlfoor .…

.0

1

2

43

5

67

8

2

5分【】析A SL:s表中关键的平均查找词较次数比ASL s= 1+(+1+111+2++53+/) 8 =15 8/ ≈ 1.8 7ALS:u不在散列表的关中键的平词均找查次数(不功) 成据根H(ke)y分为26种值况情H:为值0,12,…,25,ASL u= (98+++7+5+4+63+21*+81/ )2 6=62 26 / 2.≈83

.2平方 探测法(Quadarit cPobirng---) 二次测探

方平测探:以法增序量12,列-1,22,2-22,……q2,-q2 ,且 q ≤TabeSilze2/ 循环试探一个存下储地址

[例]。 关键设序词为 {4列

7,,29,7119,,4,548,2,30}0, 散列表表 长aTlbeiSez= 1 1  散列,函数:h为ke() y= key omd 11 。用平探测法方处冲突,理列依次出插入后散的表,列估算并ALs。

关S词键 eyk散列地 址h(eky)4 3 777 2 9 17 109 9 4 8754 01 2 0 9038

键词关 ey k列散址h地(eky 冲)次数突

7 4 30

7 7

0

2

97 1

11 00

9 90

8

47

2

5 4010

029 3

30

83

A

LSs = 1+1(++2+113+++144)+ / 9=18 /9 2

地址 操= 0 1作2 3 4 6 5 7 8 91 说0明

入插7 插47入插入 29插入11 插入 插9入48 入5插 插4入2 0入插03

11

1 11 111 11 11

0

32 200

47

474 47 477 7 4474 747

8

4 84 4 884

7

7 777 7 7

72

9 9 2292 2992 9 9

2

9 9 9 9

594 5 54

4

无突冲 无冲突d 1 1= 冲突无 无冲突d2 =1 -无突冲 3d =4 d3 = 4

2.

方探平测(法Quardatc Proiibn)g

是有否空间,方平测(探次探二)就测能得找?到5

601 7 2 34

h(

k=)k m o 5

插入d1 , 1(h11)1= 测探序:列+1=1, 2-1=01, 1(2+2mo)d =5,0(1 -22mod )52, (=+12)3od 5m=0 (1-3,2m)d 5o=2, (14+2m)od 5=,2…

定有显理示如:散果表列度T长baelizeS某个是4k3+(是k正整数 形)式的数时,平方探素法就可测以查探到整散个表空间列。

ytpeed ftrscutHash ablTeInit ilizaTaelbe( intT blaSeie ) HaszhbT *HalhsTabel ;{s trct uashTbHl{H shaTbla e; Hin tTableSzi; eitn ; Cile lheTellsC if; ( abTelizS T-albeSie = NzxePtimr(e TbleaiSze); 4 /*1分 配散表列Cells /

H*>-heCTlls=e(elC *lma)loclsi(eozf(Ce ll)* -HT>aleSbze);i5 67 8 910 1

f(i H>-heTCelsl = =NUL L) FtalEraor(r "空间出!溢!" ); !orf( i =;0i H->The-eCll[ si] .nIo f=Emp t; yrteru nH;}

1

1

11

1ositPoinFi nd Ele(enmTtye peyK ,asHhabTel ) H/平方探**/ 测{ Poistio nCrreuntosP,NewP so in; CNtmu /;*记 录突次冲数*/ NCu = 0m N;wPos e =uCrentrPo = sHsh( Kae,y H-T>baelSzei ;) hwlei H(->TehellCs NewPo[ s]Inf. o!=Em pt &y &->HhTCeelsl [NePwos .E]lment !=e Ke y) {/ *字符类型的关串键需词要st rcpm函 数! !*/ fi(+C+umN% )2 {/*判断冲突 的奇偶次 /*N ePwo s C=ruenrtoPs +(C Num+)12/(CN*um1+)/; 2hwile( eNwPo s>= -HTa>beliSe ) NewPoz -=sH- >TalbSizee } else; { NePwos= urrCntPes o-C Nu/2 m*C um/2N; wihle New(Po T-blaSiee;z} }di +1 -22 +122 22 +3-2 -3 …. 2ertrnu NewPo; snuC m1 2 34 5 6

}ovd Insiret( lEeentmTye Kpye,H shaabTelH ) { * /插入操 *作/ oPsiito nPso;P o =s Fid( Kny,eH ) ;if( ->HhTeCels[l Ps o].Inf o=! egitLiamet ) /{ *确在认此入插* / -H>hTCelel[sPo ]s.Inof Leg=tiimtea ;->HTeChlls[ ePos ].lemeEt n =eyK;/* 符串字类的型键关词需要 srtcpy函数!! */ }}

开地址放列表中散,删除作操很小要心 。常通能只“惰懒删除”即,要增需一个加“删 除记标De(ltee)d,而并不”是真

正删它。除以 便找时不查“断会链。”空其可以间在 次下插时重入。

3 .散双探列测(法DuboelH sainh)g

双散列探测: 法di 为ih2(*eyk),2(khy)是e另一个列函散数 探序列测:成h(2ey)k2,2(keh),y3h2key)(,…… 任对意的ek,hy2k(e)y ≠ 0!  探 序列测还该应证保有所的列存储散单元应都该够被探测到能 选择。下形以式良好的有效果 :h(k2ye ) = p- ke( ymod p)其中

:p

素4.

再散(列Reahhing)s

散列当表元太多(即装填因子素α太大 ),时找效率查会降; 下 实用大装填因子一般最取 05 .

分离链接

法(epSaatre Cahniig)

分离n接法:链相将位应上置冲突的所有键词关存在储一同单链个表

中例【】设 键关字序列 4为,77, 29,11, 61 ,92, 22, 8,3 5,0 3,7 8,9,9 4, 21 散;函数取为列h(:eky) k=yem od11 0 2; 21 ^1 用分离接法链处理突。冲

stuctrHa hsbl {T it TabnleiSe;z Lst iheLTsist; H; H}11

1 32 45 6 78 910^ 21 ^

^

98

33 7 16 49 9 28

^4792 ^5 07 ^^ ^ ^^

表中有9个结只需1点次查,找 个结5点需2要查次找, 查成功找的平查找均数次:ASL s(=9+*2)5/14 1≈36

.

st

rut LcsiNtdoe t;pyeefd tsurt LiscNtdoe P*oitsin,o L*its;s trut HashTcbl; tyeped stfruct aHsThlb*H shaaTleb; sturct isLNtde {o ElemntTeyepE lmeent Posit;inoN xt; }e P;oistionF nid( lEmenteTyp Keye, HasTahbleH ) { PsotiinoP; Li tsL ; L &(= H>T-heiLtss[Ha sh (eKy ,->TabHlSezie ] ); P) =L- >extN w;hil(e P!= NUL L&& srcmt(P-p>lEmenet Key),) P P=>-Netx; reurt nP; }

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3