




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、程序設(shè)計(jì)與算法分析實(shí)驗(yàn)報(bào)告一 設(shè)計(jì)的目的與內(nèi)容1.設(shè)計(jì)目的通過本實(shí)驗(yàn)需要掌握構(gòu)造哈希函數(shù)表,需要完成設(shè)計(jì)構(gòu)造哈希表的 完整算法,并求出平均查找長度。2 實(shí)驗(yàn)內(nèi)容使用哈希函數(shù):H(K)=3*K MOD 11 并采用開放地址法解決沖突,試在0到10的散列地址空間對(duì)關(guān)鍵字序列( 22, 41, 53, 46, 30,13, 01,67)構(gòu)造哈希函數(shù)表,并設(shè)計(jì)構(gòu)造哈希表的完整算法,并求出平均查找長度。二 算法的基本思想1. 數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)哈希函數(shù) H ( key ) =3* key mod 11,哈希表的地址空間為 0 10,對(duì)關(guān)鍵字序列( 22, 41, 53, 46, 30,13, 01,67)按
2、線性探測(cè)再散列和二次探測(cè)再散列的方法分別構(gòu)造哈希表。 ( 1 )線性探測(cè)再散列: 3*22 11 = 0; 3*41 11=2 ; 3*53 11 = 5 ;3* 46%11=6;3*30%11=2發(fā)生沖突,下一個(gè)存儲(chǔ)地址( 2 1 ) 11 3 ;3*13%11=6發(fā)生沖突,下一個(gè)存儲(chǔ)地址( 6 1 ) 11 7 ;3*01%11=3發(fā)生沖突,下一個(gè)存儲(chǔ)地址( 3 1 ) 11 4 ;3*67%11=3發(fā)生沖突,下一個(gè)存儲(chǔ)地址是:( 3 1 ) 11 4 發(fā)生沖突; 下一個(gè)存儲(chǔ)地址( 4 + 1 )%11=5發(fā)生沖突; 下一個(gè)存儲(chǔ)地址( 5 + 1 )%11=6發(fā)生沖突;下一個(gè)存儲(chǔ)地址( 6
3、+ 1 )%11=7發(fā)生沖突;下一個(gè)存儲(chǔ)地址( 7 + 1 )%11=8未發(fā)生沖突。2.算法的基本思想 開放地址法 這個(gè)方法的基本思想是:當(dāng)發(fā)生地址沖突時(shí),按照某種方法繼續(xù)探測(cè)哈希表中的其他存儲(chǔ)單元,直到找到空位置為止。這個(gè)過程可用下式描述: H i ( key ) = ( H ( key )+ d i ) mod m ( i = 1,2, , k ( k m 1) 其中: H ( key ) 為關(guān)鍵字 key 的直接哈希地址, m 為哈希表的長度, di 為每次再探測(cè)時(shí)的地址增量。 采用這種方法時(shí),首先計(jì)算出元素的直接哈希地址 H ( key ) ,如果該存儲(chǔ)單元已被其他元素占用,則繼續(xù)查看
4、地址為 H ( key ) + d 2 的存儲(chǔ)單元,如此重復(fù)直至找到某個(gè)存儲(chǔ)單元為空時(shí),將關(guān)鍵字為 key 的數(shù)據(jù)元素存放到該單元。 增量 d 可以有不同的取法,并根據(jù)其取法有不同的稱呼: ( 1 ) d i 1 , 2 , 3 , 線性探測(cè)再散列; ( 2 ) d i 12 , 12 , 22 , 22 , k2, -k2 二次探測(cè)再散列;( 3 ) d i 偽隨機(jī)序列 偽隨機(jī)再散列; 三 源程序代碼及測(cè)試結(jié)果1. 源程序代碼#include<iostream.h>#include<iomanip.h>#define M 11#define N 8struct hte
5、rmint key; /關(guān)鍵字值int si; /散列次數(shù);struct hterm hlistM;int i,adr,sum,d;int xN=22,41,53,46,30,13,1,67; /關(guān)鍵字賦值float average;void chash() /創(chuàng)建哈希表for (i=0;i<M;i+)hlisti.key=0;hlisti.si=0;for (i=0;i<N;i+) sum=0;adr=(3*xi)%M;d=adr;if (hlistadr.key=0)hlistadr.key=xi;hlistadr.si=1;elsedo /沖突處理d=(d+1)%M;sum=
6、sum+1;while (hlistd.key!=0);hlistd.key=xi;hlistd.si=sum+1;void dhash() /輸出哈希表cout <<" 哈希表地址:"for(i=0;i<M;i+)cout << setw(4) <<i;cout << endl;cout<<"哈希表關(guān)鍵字:"for (i=0;i<M;i+)cout<< setw(4) << hlisti.key;cout << endl;cout <<
7、; " 搜索長度:"for (i=0;i<M;i+)cout << setw(4) << hlisti.si;cout << endl;average=0;for (i=0;i<M;i+)average=average+hlisti.si;average=average/N;cout << "平均搜索長度: ASL("<< N <<")="<< average << endl;void main()chash();dhash()
8、; 2. 測(cè)試結(jié)果3. 存在的問題及解決解決方法:struct htermint key; /關(guān)鍵字值int si; /散列次數(shù)“”后面少了一個(gè)“; ”。四 分析與討論( 1 )線性探測(cè)再散列: 22 11 = 0; 41 11=8 ; 53 11 = 9 ; 46%11=2;30%11=7;13%11=2發(fā)生沖突,下一個(gè)存儲(chǔ)地址( 2 1 ) 11 3 ;01%11=1;67%11=1發(fā)生沖突,下一個(gè)存儲(chǔ)地址是:( 1 1 ) 11 2 發(fā)生沖突; 下一個(gè)存儲(chǔ)地址( 2 + 1 )%11=3發(fā)生沖突; 下一個(gè)存儲(chǔ)地址( 3 + 1 )%11=4未發(fā)生沖突。五 心的體會(huì)在這次數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)中遇到了很多實(shí)際性的問題,在實(shí)際設(shè)計(jì)才發(fā)現(xiàn),書本上理論性的東西和在實(shí)際運(yùn)用中的還是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 水果贈(zèng)送活動(dòng)方案
- 水調(diào)歌頭活動(dòng)方案
- 沃爾瑪年貨大王活動(dòng)方案
- 求婚vlog活動(dòng)方案
- 民謠征集活動(dòng)方案
- 歌唱指導(dǎo)活動(dòng)方案
- 河南展會(huì)配套活動(dòng)方案
- 武漢消費(fèi)促進(jìn)月活動(dòng)方案
- 永康火鍋活動(dòng)方案
- 畢業(yè)玩水活動(dòng)策劃方案
- 云南保山永昌教育發(fā)展有限公司招聘考試真題2024
- 2025年 赤峰市巴林左旗社區(qū)工作者招聘考試筆試試卷附答案
- 中國新疆反恐課件
- 《民營經(jīng)濟(jì)促進(jìn)法》金融支持條款的解讀與實(shí)施路徑研究
- 2025年陜西省中考英語試題(附答案和音頻)
- 家庭急救包物品清單
- 回顧與展望講課件
- 附件:小學(xué)2025年暑假跨學(xué)科實(shí)踐作業(yè)實(shí)施方案
- 2025循環(huán)流化床鍋爐停(備)用維護(hù)保養(yǎng)導(dǎo)則
- 2025年7月浙江省普通高中學(xué)業(yè)水平考試歷史仿真模擬卷01(含答案)
- 學(xué)習(xí)導(dǎo)向的高校教學(xué)評(píng)價(jià)體系研究
評(píng)論
0/150
提交評(píng)論