版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、武漢紡織大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告班級(jí): 信管 專業(yè) 班 姓名: 學(xué)號(hào): 實(shí)驗(yàn)時(shí)間: 年 月 日 指導(dǎo)教師: 實(shí)驗(yàn)四:查找操作與應(yīng)用一、實(shí)驗(yàn)?zāi)康模?1、掌握順序查找、折半查找、哈希查找的基本方法和操作過(guò)程2、掌握查找效率的分析方法二、實(shí)驗(yàn)內(nèi)容:1、編寫(xiě)程序,實(shí)現(xiàn)順序查找操作,可參考書(shū)本P260示例程序。 實(shí)驗(yàn)步驟: 、在Java語(yǔ)言編輯環(huán)境中新建程序,建立一個(gè)順序表(表長(zhǎng)10),依次輸入10個(gè)數(shù)據(jù)元素(對(duì)元素存放的先后順序沒(méi)有要求),并按照存儲(chǔ)順序輸出所有元素; 、輸入帶查找關(guān)鍵字,在順序表中進(jìn)行順序查找; 、輸出查找結(jié)果。2、編寫(xiě)程序,實(shí)現(xiàn)有序表折半查找操作,可參考書(shū)本P263示例程序。 實(shí)驗(yàn)步驟
2、: 、在Java語(yǔ)言編輯環(huán)境中新建程序,建立一個(gè)順序表(表長(zhǎng)10),依次輸入10個(gè)數(shù)據(jù)元素(要求所有元素按照遞增順序排列),并按照存儲(chǔ)順序輸出所有元素; 、輸入帶查找關(guān)鍵字,在有序表中進(jìn)行折半查找; 、輸出查找結(jié)果。3、編寫(xiě)程序,實(shí)現(xiàn)哈希表查找操作。 實(shí)驗(yàn)步驟: 、在Java語(yǔ)言編輯環(huán)境中新建程序,建立一個(gè)順序表(表長(zhǎng)12),依次輸入10個(gè)數(shù)據(jù)元素,并按照存儲(chǔ)順序輸出所有元素; 、輸入帶查找關(guān)鍵字,在哈希表中進(jìn)行查找; 、輸出查找結(jié)果。 已知:哈希函數(shù)為H(key)=key MOD 11,采用開(kāi)放地址法、線性探測(cè)再散列解決沖突,輸入元素為 55,19,31,23,68,20,27,9,10,7
3、9。三、操作步驟:1.順序查找(1)將順序查找方法添加入SeqList.java中/順序表查找關(guān)鍵字為key元素,返回首次出現(xiàn)的元素,若查找不成功返回-1/key可以只包含關(guān)鍵字?jǐn)?shù)據(jù)項(xiàng),由 T 類的equals()方法提供比較對(duì)象相等的依據(jù)public int indexOf(T key)if(key != null)for(int i=0;ithis.len;i+)if(this.elementi.equals(key)/對(duì)象采用equals()方法比較是否相等return i;return -1;/空表,key為空對(duì)象或者未找到時(shí)public T search(T key) /查找,返回首
4、次出現(xiàn)的關(guān)鍵字為key的元素int find = this.indexOf(key);return find = -1?null:(T)this.elementfind;(2)Linearsearch.javapackage search;import java.util.Scanner;/* * * author pang * */public class Linearsearch public static void main(String args)SeqList list = new SeqList(10);list.append(2);list.append(3);list.appe
5、nd(4);list.append(5);list.append(6);list.append(7);list.append(8);list.append(9);list.append(10);list.append(11);System.out.println(list.toString();System.out.println(輸入要查找的數(shù):);Scanner scan = new Scanner(System.in);while(true)int key = scan.nextInt();System.out.println(順序查找: +list.search(key);(3)運(yùn)行結(jié)
6、果2.折半查找(1)將折半查找方法添加入SeqList.java中/在按升序排序的數(shù)組中,折半查找關(guān)鍵字為key元素,若找到返回下標(biāo),否則返回-1public int binarySearch(T key)int begin = 0;int end = this.len-1;if(key != null)while(begin0)/給定對(duì)象小end = mid-1;/查找范圍縮小到前半段elsebegin = mid+1;/查找范圍縮小到后半段return -1;/查找不成功(2)Binarysearch.javapackage search;import java.util.Scanner;
7、/* * * author pang * */public class Binarysearch public static void main(String args)SeqList list = new SeqList(10);list.append(2);list.append(3);list.append(4);list.append(5);list.append(6);list.append(7);list.append(8);list.append(9);list.append(10);list.append(11);System.out.println(list.toString
8、();System.out.println(輸入要查找的數(shù):);Scanner scan = new Scanner(System.in);while(true)int key = scan.nextInt();System.out.print(折半查找: );System.out.println(list.binarySearch(key);(3)運(yùn)行結(jié)果3.哈希查找(1)將構(gòu)造哈希表和哈希查找的方法加入SeqList.java中/除留余數(shù)法計(jì)算哈希值,構(gòu)造哈希表public void hash(int x,int y)int h = x % y;if(Integer.parseInt(el
9、ementh.toString()=0)/該位置為空,不沖突this.set(h, x);/此處為set(int x,int y)的方法,與原set方法有一定差別else/沖突hash(h+1,y);/開(kāi)放地址法、線性探測(cè)再散列解決沖突/哈希查找public int hashSearch(int key,int y)int h = key % y;/計(jì)算哈希值作為下標(biāo)for(int i=1;i=y;i+)if(Integer.parseInt(elementh.toString()=0)/(0代表該位置為空)若查找位置為空,查找失敗return -1;else if(Integer.parse
10、Int(elementh.toString()=key)/若查找位置正好為key,查找成功return h;else/若查找位置有值,但不等于key,解決沖突,繼續(xù)查找h=h+i;return hashSearch(h,y);(2)Hashsearch.javapackage search;import java.util.Scanner;/* * * author pang * */public class Hashsearch public static void main(String args)SeqList list = new SeqList(12);for(int i=0;i12;i+)list.append(0);list.hash(55,11);list.hash(19,11);list.hash(31,11);list.hash(23,11);list.hash(68,11);list.hash(20,11);list.hash(27,11);list.hash(9,11);list.hash(10,11);list.hash(79,11);System.out.println(list.toString();Syst
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 武漢工程職業(yè)技術(shù)學(xué)院《誤差理論與測(cè)量平差基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版物業(yè)管理室內(nèi)裝修協(xié)議版B版
- 2024校園節(jié)能減排與物業(yè)管理服務(wù)合同
- 二零二五年度指南:國(guó)際合同第六號(hào)生皮供應(yīng)鏈金融支持協(xié)議3篇
- 2025年度跨境電子商務(wù)平臺(tái)合作運(yùn)營(yíng)協(xié)議規(guī)范文本2篇
- 2025年度窗簾品牌形象設(shè)計(jì)與傳播服務(wù)合同3篇
- 天津工業(yè)職業(yè)學(xué)院《材料科學(xué)與工程創(chuàng)新創(chuàng)業(yè)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版企業(yè)應(yīng)收賬款第三方擔(dān)保債權(quán)轉(zhuǎn)讓合同3篇
- 二零二五年文化創(chuàng)意產(chǎn)業(yè)合作發(fā)展合同3篇
- 二零二五年度O2O農(nóng)產(chǎn)品上行合作框架協(xié)議2篇
- 提優(yōu)精練08-2023-2024學(xué)年九年級(jí)英語(yǔ)上學(xué)期完形填空與閱讀理解提優(yōu)精練(原卷版)
- DB4511T 0002-2023 瓶裝液化石油氣充裝、配送安全管理規(guī)范
- 企業(yè)內(nèi)部客供物料管理辦法
- 婦科臨床葡萄胎課件
- 三基三嚴(yán)練習(xí)題庫(kù)與答案
- 傳媒行業(yè)突發(fā)事件應(yīng)急預(yù)案
- 小學(xué)英語(yǔ)時(shí)態(tài)練習(xí)大全(附答案)-小學(xué)英語(yǔ)時(shí)態(tài)專項(xiàng)訓(xùn)練及答案
- 《調(diào)試件現(xiàn)場(chǎng)管理制度》
- 社區(qū)治理現(xiàn)代化課件
- 代持房屋協(xié)議書(shū)
- 國(guó)際品牌酒店管理合同談判要點(diǎn)
評(píng)論
0/150
提交評(píng)論