数据结构实验报告-排序与查找

数据结构实验报告-排序与查找

ID:47518052

大小:331.50 KB

页数:7页

时间:2020-01-12

数据结构实验报告-排序与查找_第1页
数据结构实验报告-排序与查找_第2页
数据结构实验报告-排序与查找_第3页
数据结构实验报告-排序与查找_第4页
数据结构实验报告-排序与查找_第5页
资源描述:

《数据结构实验报告-排序与查找》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、电子科技大学实验报告学生姓名:XXX学号:2013220501018指导教师:刘峤实验地点:信软机房306实验时间:2014/6/20一、实验室名称:软件实验室二、实验项目名称:数据结构与算法—排序与查找三、实验学时:4四、实验原理:快速排序的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。假设要排序的数组是A[1]……A[N],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后

2、将所有比它的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一躺快速排序。一躺快速排序的算法是:1)设置两个变量I、J,排序开始的时候I:=1,J:=N2)以第一个数组元素作为关键数据,赋值给X,即X:=A[1];3)从J开始向前搜索,即(J:=J-1),找到第一个小于X的值,两者交换;4)从I开始向后搜索,即(I:=I+1),找到第一个大于X的值,两者交换;5)重复第3、4步,直到I=J。二分法查找(折半查找)的基本思想:(1)确定该区间的中点位置:mid=(low+high)/2    min代表区间中间的结点的位置,low代表区间最左结点

3、位置,high代表区间最右结点位置(2)将待查a值与结点mid的关键字(下面用R[mid].key)比较,若相等,则查找成功,否则确定新的查找区间:A)如果R[mid].key>a,则由表的有序性可知,R[mid].key右侧的值都大于a,所以等于a的关键字如果存在,必然在R[mid].key左边的表中,这时high=mid-1;B)如果R[mid].key

4、在查找过程中,low逐步增加,high逐步减少,如果high#defineMAX_LEN10

5、0voidSort(int*data,intleft,intright){inti,j,temp;i=left;j=right;temp=data[left];if(left>right)return;while(i!=j){while(data[j]>=temp&&j>i)j--;if(j>i)data[i++]=data[j];while(data[i]<=temp&&j>i)i++;if(j>i)data[j--]=data[i];}data[i]=temp;Sort(data,left,i-1);Sort(data,i+1,right);}in

6、tSearch(int*data,intstart,intend,intkey,intnum){intresult;intp=(start+end)/2;if(data[p]==key&&start<=end){result=p;num++;if(data[p]>key)result=Search(data,start,p,key,num);elseresult=Search(data,p+1,end,key,num);returnresult;}elseif(num==0&&start>end){result=-1;printf("404NOFO

7、UND");returnresult;}elseif(num!=0&&start>end){result=-1;if(num==1)printf("Foundednumberonlyone");elseprintf("Foundednumbermorethanone");returnresult;}elseif(result!=-1){if(data[p]>key)result=Search(data,start,p-1,key,num);elseresult=Search(data,p+1,end,key,num);returnresul

8、t;}else{result=-1;returnresult;}}voidloadFile(i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。