数据结构实验五-查找与排序的实现_第1页
数据结构实验五-查找与排序的实现_第2页
数据结构实验五-查找与排序的实现_第3页
数据结构实验五-查找与排序的实现_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告课程名称数据结构实验名称查找与排序得实现系别专业班级指导教师11学号姓名实验日期实验成绩一、实验目得掌握交换排序算法(冒泡排序)得基本思想;掌握交换排序算法(冒泡排序)得实现方法;掌握折半查找算法得基本思想;掌握折半查找算法得实现方法;二、实验内容对同一组数据分别进行冒泡排序,输出排序结果。要求:设计三种输入数据序列:正序、反序、无序修改程序:将序列采用手工输入得方式输入增加记录比较次数、移动次数得变量并输出其值,分析三种序列状态得算法时间复杂性对给定得有序查找集合,通过折半查找与给定值k相等得元素。在冒泡算法中若设置一个变量lastExchangeIndex来标记每趟排序时经过交换得最后位置,算法如何改进?三、设计与编码1、本实验用到得理论知识2、算法设计3、编码packagesort_search;importjava、util、Scanner;publicclassSort_Search{//冒泡排序算法ﻩpublicvoidBubbleSort(intr[]){ inttemp;ﻩ intcount=0,move=0;ﻩ booleanflag=true;ﻩ for(inti=1;i〈r、length&&flag;i++){ﻩﻩ flag=false;ﻩﻩ count++;ﻩ for(intj=0;j<r、length-i;j++){ if(r[j]>r[j+1]){ ﻩ temp=r[j];ﻩ ﻩﻩr[j]=r[j+1]; r[j+1]=temp; ﻩﻩ move++; flag=true;ﻩ ﻩ }ﻩﻩﻩ}ﻩ }ﻩﻩSystem、out、println("排序后得数组为:”);ﻩ for(inti=0;i〈r、length;i++){ﻩ ﻩSystem、out、print(r[i]+"”);ﻩ } System、out、println();ﻩ System、out、println("比较次数为:"+count);ﻩﻩSystem、out、println("移动次数为:”+move); }ﻩpublicstaticintBinarySearch(intr[],intkey){//折半查找算法ﻩ intlow=0,high=r、length-1;ﻩ while(low<=high){ﻩ intmid=(low+high)/2;ﻩ ﻩif(r[mid]==key){ ﻩreturnmid; ﻩﻩ} ﻩﻩelseif(r[mid]>key){ high=mid—1;ﻩﻩ }ﻩﻩ else{ ﻩﻩﻩlow=mid+1; ﻩﻩ} ﻩ}ﻩﻩreturn-1;ﻩ}//测试 publicstaticvoidmain(String[]args){ﻩ Sort_Searchss=newSort_Search(); intt[]=newint[13];ﻩ System、out、println(”依次输入13个整数为:");ﻩ Scannersc=newScanner(System、in); ﻩfor(inti=0;i〈t、length;i++){ ﻩﻩt[i]=sc、nextInt(); ﻩ}ﻩﻩSystem、out、println("排序前得数组为:");ﻩ for(inti=0;i<t、length;i++){ﻩ System、out、print(t[i]+"”);ﻩ } ﻩSystem、out、println();ﻩﻩss、BubbleSort(t);//查找 ﻩwhile(true){ﻩﻩSystem、out、println("请输入要查找得数:”); ﻩ ﻩintk=sc、nextInt(); ﻩif(BinarySearch(t,k)>0) System、out、println(k+"在数组中得位置就是第:"+BinarySearch(t,k));ﻩﻩelse ﻩﻩSystem、out、println(k+”在数组中查找不到!");ﻩ }ﻩ}}四、运行与调试在调试程序得过程中遇到什么问题,就是如何解决得?问题:在计算比较次数与移动次数时,计算数据明显出错。原因:在进行移动与比较得过程中,没有更新标志,导致计数出错。解决办法:在比较与移动得过程中,有进行比较与移动得操作时,更新标志.然后按标志计数。设计了哪些测试数据?预计结果就是什么?说明:测试了int类型数据:2411723453743143118933101177预计排序后结果为:4111723313337434589101177241比较次数:=1\*GB3\*MERGEFORMAT①无序:8次=2\*GB3\*MERGEFORMAT②正序:1次=3\*GB3\*MERGEFORMAT③反序:12次移动次数:=1\*GB3\*MERGEFORMAT①无序:30次=2\*GB3\*MERGEFORMAT②正序:0次=3\*GB3\*MERGEFORMAT③反序:78次查找数33得位置为:5查找数101得位置为:10查找数100得结果为:查找不到程序运行得结果如何=1\*ROMAN\*MERGEFORMATI、无序输入:=2\*ROMAN\*MERGEFORMATII、正序输入:=3\*ROMAN\*MERGEFORMATIII、反序输入:五、总结与心得六、思考题已知奇偶转换排序如下:第一趟对所有奇数得i,将a[i]与a[i+1]进行比较

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论