




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)散列查找散列函數(shù)沖突處理8.4散列表查找查找性能分析概念的引入二分法,順序查找,二叉排序樹(shù)都以關(guān)鍵字的比較作為查找的基礎(chǔ)如果建立關(guān)鍵字與存儲(chǔ)地址的映射關(guān)系,則已知關(guān)鍵字時(shí),可以直接定位到相應(yīng)的存儲(chǔ)位置上,從而達(dá)到查找的目的理想情況下,無(wú)須任何比較就可以找到待查關(guān)鍵字,查找的期望時(shí)間為O(1)散列查找以節(jié)點(diǎn)的關(guān)鍵字K為自變量,通過(guò)一個(gè)確定的函數(shù)關(guān)系h,計(jì)算出函數(shù)值h(K)這個(gè)值可理解為節(jié)點(diǎn)的存儲(chǔ)地址,將節(jié)點(diǎn)存入h(K)所指的存儲(chǔ)位置上查找時(shí),根據(jù)關(guān)鍵字,用函數(shù)h(K)計(jì)算出地址,再到相應(yīng)的單元里去取出節(jié)點(diǎn)函數(shù)h稱(chēng)為散列函數(shù),h(K)稱(chēng)為散列地址散列方法存儲(chǔ)的線(xiàn)性表稱(chēng)為散列表(HashTable),也稱(chēng)為哈希表散列查找直接定址法取關(guān)鍵字或關(guān)鍵字的某個(gè)線(xiàn)性函數(shù)值為散列地址,即H(key)=key或H(key)=a×key+b,其中a和b為常數(shù)散列函數(shù)有如下序列的關(guān)鍵字集合{1000,2000,5000,7000,8000,10000},選取散列函數(shù)為H(key)=key/1000有幾十個(gè)記錄,關(guān)鍵字為8位十進(jìn)制數(shù),哈希地址為4位十進(jìn)制數(shù)散列函數(shù)8134653281372242813874228130136781322817813389678136853781419355…..…..
分析:只取8
只取1
只取3、4
只取2、7、5
數(shù)字分布近乎隨機(jī)所以:取作為哈希地址數(shù)字分析法平方取中法求關(guān)鍵字的平方值,擴(kuò)大相近數(shù)的差別根據(jù)表長(zhǎng)度取中間的幾位數(shù)作為散列函數(shù)值散列函數(shù)平方后得到:{0010000,0012100,1020100,1002001,0012321}根據(jù)表長(zhǎng)度,取中間三位數(shù)作為散列地址:{100,121,201,020,123}數(shù)據(jù)集{0100,0010,1010,1001,0111},散列表長(zhǎng)度為1000關(guān)鍵字為:0442205864,哈希地址位數(shù)為4散列函數(shù)586442200410088H(key)=0088移位疊加5864022404
6092H(key)=6092折疊疊加折疊法將關(guān)鍵字分成位數(shù)相同的幾部分,然后取這幾部分的疊加和作為散列地址。數(shù)據(jù)集合{18,27,1,20,22,6,10,13,41,15,25},建立關(guān)鍵字與存儲(chǔ)位置的關(guān)系為:h(key)=keymod11散列函數(shù)22113251527618412010除留余數(shù)法取關(guān)鍵字除以自然數(shù)n的余數(shù)作為散列地址散列表的沖突現(xiàn)象兩個(gè)不同的關(guān)鍵字,可能得到相同的散列函數(shù)值,從而被映射到表的同一位置上稱(chēng)為沖突或碰撞發(fā)生沖突的若干個(gè)關(guān)鍵字稱(chēng)為該散列函數(shù)的同義詞避免沖突選擇合適的散列函數(shù)關(guān)鍵字的個(gè)數(shù)小于或等于散列表的長(zhǎng)度沖突處理沖突不可能完全避免若關(guān)鍵字的個(gè)數(shù)大于散列表的長(zhǎng)度,則無(wú)論怎樣設(shè)計(jì)h,也不可能完全避免沖突設(shè)計(jì)散列函數(shù)時(shí)盡可能使沖突最少要確定解決沖突的方法,使發(fā)生沖突的同義詞能夠存儲(chǔ)到散列表中。散列表的沖突線(xiàn)性探測(cè)例:{26,36,41,38,44,15,68,12,06,51}
構(gòu)造哈希表t[0..12],哈希函數(shù):h(key)=key%13余數(shù)分別為:{0,10,2,12,5,2,3,12,6,12}(26,36,41,38,44)沒(méi)有沖突15發(fā)生沖突,用線(xiàn)性探測(cè)法,h1=(2+1)%13,得到位置3此位置未填值,是開(kāi)放的位置,則15存進(jìn)t[3]68與15發(fā)生沖突,原本不是同義詞的兩個(gè)關(guān)鍵字,爭(zhēng)奪同一個(gè)后繼散列地址,出現(xiàn)堆積用線(xiàn)性探測(cè)法,h1=(3+1)%13,則68存進(jìn)t[4];12與38沖突,用線(xiàn)性探測(cè)法,h1=(12+1)%13,此位置與26沖突繼續(xù)線(xiàn)性探測(cè),h2=(12+2)%13,開(kāi)放地址,則t[1]=12; ……沖突處理-開(kāi)放地址法堆積現(xiàn)象散列地址不同的關(guān)鍵字,爭(zhēng)奪同一個(gè)后繼位置使得非同義詞也加入了探測(cè)序列,增加了探查的長(zhǎng)度,即增加了查找時(shí)間若散列函數(shù)不好或裝填因子過(guò)大,會(huì)使堆積加劇裝填因子α=填入表中的元素個(gè)數(shù)/哈希表的長(zhǎng)度沖突處理-開(kāi)放地址法再平方探測(cè)按順序決定值時(shí),如果某數(shù)據(jù)的值已經(jīng)存在,則在原來(lái)值的基礎(chǔ)上先加1的平方個(gè)單位,若仍然存在,則減1的平方個(gè)單位。隨之是2的平方,3的平方等等。直至不發(fā)生哈希沖突。偽隨機(jī)探測(cè)按順序決定值時(shí),如果某數(shù)據(jù)已經(jīng)存在,通過(guò)隨機(jī)函數(shù)隨機(jī)生成一個(gè)數(shù),在原來(lái)值的基礎(chǔ)上加上偽隨機(jī)數(shù),直至不發(fā)生哈希沖突。沖突處理-開(kāi)放地址法沖突處理-鏈地址法分配指針數(shù)組,建立m個(gè)空鏈表,由哈希函數(shù)對(duì)關(guān)鍵字轉(zhuǎn)換后,映射到同一哈希地址的同義詞均加入到相應(yīng)指向的鏈表中。又稱(chēng):拉鏈法優(yōu)點(diǎn):鏈?zhǔn)降刂贩ㄌ幚頉_突簡(jiǎn)單,且無(wú)堆積現(xiàn)象由于鏈?zhǔn)降刂贩ㄖ懈麈湵砩系墓?jié)點(diǎn)空間是動(dòng)態(tài)申請(qǐng)的,故它更適合于造表前無(wú)法確定表長(zhǎng)的情況鏈?zhǔn)降刂贩ㄖ醒b填因子可以α≥1,空間利用率高在用鏈?zhǔn)降刂贩?gòu)造的散列表中,刪除節(jié)點(diǎn)的操作易于實(shí)現(xiàn)。只要簡(jiǎn)單地刪去鏈表上相應(yīng)的節(jié)點(diǎn)即可。缺點(diǎn):指針占用較大空間時(shí),會(huì)造成空間浪費(fèi)。鏈地址法分析查找過(guò)程中,關(guān)鍵字的比較次數(shù),取決于產(chǎn)生沖
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年金融環(huán)境變化與公司戰(zhàn)略試題及答案
- 復(fù)習(xí)小技巧的多樣應(yīng)用2025年計(jì)算機(jī)二級(jí)VB考試試題及答案
- 國(guó)際貿(mào)易法的主要內(nèi)容試題及答案指引
- 上海民辦日日學(xué)校2025屆七下數(shù)學(xué)期末質(zhì)量跟蹤監(jiān)視試題含解析
- 數(shù)據(jù)交換與共享機(jī)制試題及答案
- 建設(shè)高效工作團(tuán)隊(duì)的計(jì)劃思路
- 數(shù)據(jù)安全與風(fēng)險(xiǎn)管理試題及答案
- 著眼于未來(lái)職業(yè)發(fā)展的策略計(jì)劃
- 實(shí)施教師的績(jī)效激勵(lì)機(jī)制計(jì)劃
- 黑龍江省齊齊哈爾市第二十一中學(xué)2025年八年級(jí)數(shù)學(xué)第二學(xué)期期末復(fù)習(xí)檢測(cè)模擬試題含解析
- 田野考古學(xué)-鄭州大學(xué)中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫(kù)2023年
- 大數(shù)據(jù)與法律檢索-湖南師范大學(xué)中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫(kù)2023年
- 應(yīng)用文寫(xiě)作基礎(chǔ)(中職 )PPT完整全套教學(xué)課件
- 記敘文閱讀之句子賞析復(fù)習(xí)市公開(kāi)課金獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件
- 鄭麗玲《彩墨游戲》說(shuō)課x 課件
- 重點(diǎn)中成藥品種含瀕危野生動(dòng)物藥材調(diào)查表
- 2016年社區(qū)獲得性肺炎(CAP)指南解讀與抗生素應(yīng)用
- 預(yù)應(yīng)力混凝土連續(xù)梁張拉記錄
- GB/T 41028-2021航空航天流體系統(tǒng)液壓軟管、管道和接頭組件的脈沖試驗(yàn)要求
- 化工環(huán)境保護(hù)與及安全技術(shù)概論考試題及答案
- 精益生產(chǎn)精管理培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論