哈希表查找失敗的asl 在哈希表中查找成功和不成功時(shí)的平均查找長(zhǎng)度如何計(jì)算?
在哈希表中查找成功和不成功時(shí)的平均查找長(zhǎng)度如何計(jì)算?我不知道你說的平均搜索長(zhǎng)度是什么意思。一般來說,哈希表會(huì)在考試中測(cè)試,因?yàn)槠渌谋容^簡(jiǎn)單。對(duì)于具有N個(gè)數(shù)據(jù)元素的查找表,成功查找的平均長(zhǎng)度為ASL=
在哈希表中查找成功和不成功時(shí)的平均查找長(zhǎng)度如何計(jì)算?
我不知道你說的平均搜索長(zhǎng)度是什么意思。一般來說,哈希表會(huì)在考試中測(cè)試,因?yàn)槠渌谋容^簡(jiǎn)單。
對(duì)于具有N個(gè)數(shù)據(jù)元素的查找表,成功查找的平均長(zhǎng)度為ASL=∑Pici(I=1,2,3,…),N)。其中:Pi是查找表中第I個(gè)數(shù)據(jù)元素的概率,CI是找到第I個(gè)數(shù)據(jù)元素時(shí)進(jìn)行比較的次數(shù)。
眾所周知,要散列的線性表是(38、25、74、63、52、48),散列函數(shù)是h(k)=kmod7。如果使用線性檢測(cè)的開放地址方法來處理沖突,則平均查找長(zhǎng)度為:
ASL=p1c1,P2C2,p3c3…
ASL=1/N(C1,C2,C3…]…
其中C是每個(gè)數(shù)字的查詢數(shù)
根據(jù)h(k)=kmod7,
38----1
25----1
74----2
63----1
52----4
48----3
so ASL=1/6(1 1 4 3)=2
哈希表公共溢出區(qū)線性探測(cè)再散列查找不成功的ASL怎么求?
搜索不成功ASL:定義為搜索不成功時(shí)對(duì)關(guān)鍵字執(zhí)行比較的平均次數(shù)。因此,對(duì)于拉鏈方法,如果第一次檢測(cè)到空位置,則搜索失敗長(zhǎng)度為0。例如,aslunsucc=(10210100103)/13≈10/13≈0.77
ASL查找失敗數(shù)是從地址到空位置的比較數(shù)。5原因1:哈希表中有5個(gè)空位置,比較一次。5原因5:哈希表中關(guān)聯(lián)詞的位置比較一次,公共溢出區(qū)比較3+1。最后除以地址總數(shù)
解決方法:(1)首先確定哈希表的長(zhǎng)度:根據(jù)公式:α=n/m,(n是記錄數(shù),m是表長(zhǎng))可以看出,由于α不小于0.75,當(dāng)記錄數(shù)為12時(shí),我們可以將表長(zhǎng)設(shè)為16,并且α為0.75。(2) 根據(jù)關(guān)鍵字第一個(gè)字母的順序,我們可以建立一個(gè)哈希表。如果第一個(gè)字母相同,我們可以添加第二個(gè)字母的順序。以此類推,我們可以知道它可以轉(zhuǎn)換成數(shù)字:趙=26;錢=17;孫=19;李=12;周=34;吳=23;張=35;王=24;常=3;朝=11;陽=25;金=10(3)。增量Di設(shè)置為Di=I((12K)mod15 1H(key)=(3K)mod20。很容易得到如下哈希表:H(26)=18h(17)=11h(19)=17h(12)=16h(34)=2H(23)=9h(35)=5h(24)=12h(3)=9h1(3)=7h(11)=13h(25)=15h(10)=10平均搜索長(zhǎng)度:aslsucc=(1×11 2)/12=13/12