数据结构实验报告2.docx

上传人:太** 文档编号:96709185 上传时间:2024-03-15 格式:DOCX 页数:11 大小:27.54KB
返回 下载 相关 举报
数据结构实验报告2.docx_第1页
第1页 / 共11页
数据结构实验报告2.docx_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《数据结构实验报告2.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告2.docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、XX金融学院实验报告课程名称:数据结构实验编号 与实验名称实验二:排序和查找实验系另IJ计算机科学与技 术系姓名学 号班级实验地点实验日期实验时数6指导教师同组其他成员无成绩一、实验目的与要求1、 通过编写和调用直接插入排序、希尔排序、冒泡排序和快速排序四种排序算法实现数据排序,充分理解各种排序算法的算法思想、排序过程与各自的时间复杂度、稳定性。2、 通过编写和调用顺序查找和二分查找算法实现数据查找,掌握两个查找算法的基本思想、实现方法和时间性能。二、实验环境与相关情况包含使用软件、实验设备、主要仪器与材料等)1、实验设备:微型计算机;2、软件系统:Windows XP、DWMX。三、实验内容

2、(一)排序(1)参照课本,分别编写Java程序,实现顺序表记录类RecordNode类KeyType。(2)参照课本,编写一个Java程序,实现顺序表类SeqList,并在其中添加成员函数:length。求顺序表的当前长度;display。输出数组元素的关键字;直接插入排序算法;带监视哨的直 接插入排序;希尔排序算法;起泡排序算法;快速排序算法。(3)编写主程序,循环选择调用以上5个排序算法,对数组元素排序,并输出排序过程。(二)查找(1)在排序实验的基础上,在类SeqList中添加成员函数:不带监视哨的顺序查找算法;带监视哨 的顺序查找算法;二分查找算法。(2)编写主程序,循环选择调用以上3

3、个查找算法,分别对键入的关键字记录进行成功和不成功查 找 publicclassKey Typeimplements Comparable privateintkey;public KeyType( ) )public KeyType( int key) this . key= key;)publicint getKey( ) returnkey;publicvoid setKey( int key) this . key= key;五、实验总结(包括心得体味、问题回答与实验改进意见)答:通过这次试验,编写和调用顺序查找和二分查找算法实现数据查找,我掌握两个查找算 法的基本思想、实现方法和时间

4、性能。六、教师评语1、完成所有规定的实验内容,实验步骤正确,结果正确;2、完成绝大部份规定的实验内容,实验步骤正确,结果正确;3、完成大部份规定的实验内容,实验步骤正确,结果正确;4、基本完成规定的实验内容,实验步骤基本正确,所完成的结果基本正确;5、未能很好地完成规定的实验内容或者实验步骤不正确或者结果不正确。6、其它:评定等级:优秀良好中等与格不与格教师签名:20XX7 月 10 日第10页共10页)public String toString( ) returnkey +;)publicint compareTo( KeyType another) intthisVal= this .

5、key;intanotherVal= another . key;return ( thisVal anotherVal? - 1 : ( thisVal= = anotherVal? 0:1); ) publicclass RecordNodeprivateComparablekey;private Object element ;public ObjectgetElement( ) returnelement;) publicvoid setElement( Object element) this . element= element;)publicComparable getKey(

6、) returnkey;) publicvoidsetKey( Comparable key) this . key= key;)public RecordNode( Comparable key) this . key= key;)public RecordNode( Comparable key, Object element) this . key= key;this . element= element;) publicclass SeqListprivateRecordNode r ;privateintcurlen;publicSeqList( intmaxSize) this -

7、 r= new RecordNode maxSize; this . curlen= 0 ;) public RecordNode getRecord( ) returnr;) publicvoid setRecord( RecordNode r) this . r= r;) publicint length( ) returncurlen; publicvoid display( ) for ( int i= 0 ; i curlen; i+ + ) System . out.print(r i .getKey () +);)publicvoid insert( int i, RecordN

8、ode x) throws Exception if ( curlen= = r . length) thrownew Exception ( 顺序 表已满); )if (i curlen) thrownew Exception ( 插入位置不合理);)for ( int j= curlen; j i; j - - ) r j = r j - 1;) r i = x; this . curlen+ + ;)publicvoid insertSort( ) / / 直接插入 RecordNode temp;int i, j;for ( i= 1 ; i = 0 & & temp . getKey

9、() pareTo( r j . getKey() ) 0 ; j - - ) r j+l = r j;)r j+ 1 = temp; )publicvoid shellSort( int d) 希尔 RecordNode temp;int i, j;for (int k= 0; k d . length; k+ + ) int dk= d k;for ( i= dk; i = 0 & & temp . getKey()pareTo( r j . getKey( ) ) 0 ; j - = dk) r j+ dk = temp;)publicvoid insertSortWithGuard(

10、) / 带监视哨 的直接插入int i, j;for ( i= 1 ; i this . curlen; i+ + ) r 0 = r i;for (j=i - l;r 0 . getKey( ) pareTo( r j . getKey( ) ) 0 ; j - - ) r j+l = r j3)r j+l = r 0; ) )publicvoid bubbleSort( ) 冒泡RecordNode temp;boolean flag= true;for ( int i= 1 ; i this . curlen& & flag; i+ + ) flag= false;for (int j=

11、 0 ; j 0 ) temp= r j;rr + 1 = temp;flag= true; ) )publicint Partition( int i, int j) RecordNode pivot = r j;while (i j) while (i j & pivot . getKey() pareTo( r j . getKey( ) ) = 0 ) j -;if (i J) r i = r j;i+ + ;)while (i 0 ) i+ + ;if (i J) r j = r i;j-;)r i = pivot;return i;)publicvoid qSort( int lo

12、w, int high) if ( low high) int pivotloc = Partition( low, high);qSort( low, pivotloc - 1 );qSort( pivotloc +1 , high);)publicvoid quickSort( ) qSort( 0 , this . curlen -1 );)publicint seqSearch( Comparable key) int i= 0;int n= length();while (i n&r i . getKey( )pareTo(key) ! = 0) i+ + ;if (i 0 ) in

13、t low= 0;int high= length( ) - 1;while ( low 0) high= mid - 1;elselow= mid+ 1;) ) ) return - 1;) ) package paixu; importjava . util . Scanner;importpaixu . RecordNode;import paixu . SeqList;publicclass Test2 publicstaticvoid main( String args) throws Exception Scanner in= new Scanner( System . in);w

14、hile ( true) SeqList a=new SeqList( 6 );String d = ,;for (int i= 0 ; i 6; i+ + ) RecordNode c= new RecordNode( d i); a . insert( i, c);System . out . printin ( System . out . printin ();输入。5进行选择);System . out . printin ( System . out . printin (直接插入排序);带监视哨的直接插入排序);System . out . printin ( System .

15、out . printin ( System . out . printin ( System . out . printin ( int g= in . nextlnt();switch ( g) case 0:希尔排序); 冒泡排序); 快速排序); 退出);return; case 1:a . insertSort();System . out . print ( 排序后 );a . display();System . out . printin ();break; case 2:a - insertSortWithGuard(); System . out . print ( 排序后

16、 System . out . printin ();break;case 3:int aa= 1,3,5;a . shellSort( aa);System . out . print ( 排序后System . out . printin (););a . display();break;case 4:a . bubbleSort();System . out . print ( 排序后System . out . printin (););a . display();break;case 5:a . quickSort();System . out . print ( 排序后System

17、 . out . printin (););a display();break;);a .display();System . out.print ( 原数组:) )import java . util . Scanner;publicclass Testpublicstaticvoid main( String args) while (12)SeqList a= new SeqList( 4 );Scanner in= new Scanner( System . in);for (int i= 0; iv 4; i+ + ) trySystem . out.printin (输入第 + i

18、+ 个元素 );String c= in . next();RecordNode d= new RecordNode( c); a . insert( i, d); catch ( Exception e) System . out. printin ( 错误: + e . getMessage();) ) a display(); System . out. printin ();System . out . printin (不带监视哨顺序查找方法查找1的结果为+ a . seqSearch ();System . out .printin (带监视哨顺序查找方法查找2的结果为+ a .

19、seqSearchWithGuard ();System . out.printin ( 二分查找方法查找3 的结果为 +a .binarySearch ();四、实验步骤与结果(包含简要的实验步骤流程、结论陈述,可附页) 排序运行结果:原刿组:25201535输入。-5进行选择二直接插入排序2芾监视哨的直接插入排序|3希尔排序宿泡排序5快速排序。退出10排序后;“15 20 25原数组;25201535冶人。-5进行选探二直接插入排序2带监视哨的直接插入排序3希尔排序4冒泡排序5快速排序。退出5555排序后,1。152025原刿组,25201535输入。-5进行选择直接插入排序2芾监视哨的直接插入排序3希尔排序4冒泡排序5快速排序。退出3510查找运行结果:饰人第。个元崇:饰入籍工个元素;愉入第2个元素:渝入第3个元素: e不带监视哨顺序查找方法查找1的结果为。带监视哨顺序交找方法充找2的结果为1 二分查找方法查找3的结果为-1 输入第。个元素,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁