ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:17.68KB ,
资源ID:5670116      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5670116.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(查询与排序实验报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

查询与排序实验报告.docx

1、查询与排序实验报告 学院 专业 班 学号 姓名 协作者_教师评定_实验题目 查询与排序 综合实验评分表指导教师评分标准序号评分项目评分标准满分打分1完成度按要求独立完成实验准备、程序调试、实验报告撰写。202实验内容(1) 完成功能需求分析、存储结构设计;(2) 程序功能完善、可正常运行;(3) 测试数据正确,分析正确,结论正确。303实验报告内容齐全,符合要求,文理通顺,排版美观。404总结对实验过程遇到的问题能初步独立分析,解决后能总结问题原因及解决方法,有心得体会。10实验报告一、 实验目的与要求1、掌握散列表的构造及实现散列查找;2、掌握堆排序的算法;3、综合比较各类排序算法的性能。二

2、、 实验内容#includestdio.h#includestdlib.h#includestring.h#includewindows.h#define MAX 20typedef struct unsigned long key; int result; char name30;RNode;RNode tMAX,rMAX;int h(unsigned long k) /*散列函数*/ return(k-3109005700)%11);void insert(RNode t,RNode x) /*插入函数,以线性探查方法解决冲突*/ int i,j=0; i=h(x.key); while(

3、j0) j+; if(j=MAX) printf(fulln); i=(i+j)%MAX; if(ti.key=0) ti=x; else if(ti.key=x.key) printf(记录已存在!n); int search(RNode t,unsigned long k) /*插入函数,以线性探查方法解决冲突*/ int i,j=0; i=h(k); while(jMAX)&(t(i+j)%MAX.key!=k)&(t(i+j)%MAX.key!=0) j+; i=(i+j)%MAX; if(ti.key=k) return(i); if(j=MAX) return MAX; else

4、return(-i);void sift(RNode r,int v,int w) int i,j; RNode a; i=v; a=ri; j=2*i+1; while(j=w) if(jrj+1.result) j+; if(a.resultrj.result) ri=rj;i=j;j=2*j+1; else break; ri=a;void sort(RNode r,int n) int i; RNode y; for(i=n/2-1;i=0;i-) sift(r,i,n-1); for(i=n-1;i0;i-) y=r0;r0=ri;ri=y; printf(学生姓名:%st学生学号:

5、%ut学生成绩:%dn,ri.name,ri.key,ri.result); sift(r,0,i-1); printf(学生姓名:%st学生学号:%ut学生成绩:%dn,r0.name,r0.key,r0.result);int menu() /*菜单函数*/ int select; printf(nn); printf(n); printf(tt*查找排序实验*n); printf(tt*n); printf(tt*欢迎进入系统*n); printf(tt* menu: *n); printf(tt* 1.查找 *n); printf(tt* 2.排序 *n); printf(tt* 0.

6、退出 *n); printf(tt*n); printf(n); printf(ttt请输入0-2n ); printf(n); printf(请选择您所要的操作(选择(0)退出):); scanf(%d,&select); getchar(); return(select); void main() /*主函数*/ int i,s,n,select; int j=0,m=0; RNode y; for(i=0;iMAX;i+) ti.key=0; /*初始化*/ for(i=0;i10;i+) /*导入记录*/ switch(i) case 0: RNode x; x.key=310900*

7、; strcpy(x.name, *); x.result=90; insert(t,x); break; case 1: RNode x; x.key=31090*1; strcpy(x.name, *); x.result=95; insert(t,x); break; case 2: RNode x; x.key=3109005*; strcpy(x.name, *); x.result=92; insert(t,x); break; case 3: RNode x; x.key=31090*; strcpy(x.name, *); x.result=93; insert(t,x); b

8、reak; case 4: RNode x; x.key=3109005*; strcpy(x.name, *); x.result=94; insert(t,x); break; case 5: RNode x; x.key=310900*; strcpy(x.name, *); x.result=91; insert(t,x); break; case 6: RNode x; x.key=3109005*; strcpy(x.name, *); x.result=96; insert(t,x); break; case 7: RNode x; x.key=310900*; strcpy(x

9、.name, *); x.result=99; insert(t,x); break; case 8: RNode x; x.key=310900*; strcpy(x.name, *); x.result=98; insert(t,x); break; case 9: RNode x; x.key=310900*; strcpy(x.name,*); x.result=97; insert(t,x); break; printf(nnnnnnn); system(cls); loop: printf(nnn); select=menu(); switch(select) case 1: pr

10、intf(n请输入要查找的学生学号:); scanf(%u,&y.key); s=search(t,y.key); if(s=MAX|s0) printf(not findn); else printf(nn你要查找的学生信息n); printf(学生姓名:%st学生学号:%u,ts.name,ts.key); break; case 2: for(i=0;iMAX;i+) if(ti.key!=0) rj+=ti; m+; printf(排序之前:nn); for(i=0;im;i+) printf(学生姓名:%st学生学号:%ut学生成绩:%dn,ri.name,ri.key,ri.res

11、ult); printf(n排序之后:n); sort(r,m); break; case 0:exit(0); getchar(); goto loop;三、 实验结果和数据处理(1) 查找数据(310900*)(2) 排序四、 总结这次的课程实验完成了主控界面,录入,输出,排序,查找,结束界面等功能。在程序调试过程之中,我还是个初学者,在编写程序的过程中不断出现不同状况的错误,在修改中不断发现自己的问题和不足。通过编译调试,程序提示错误所在,然后我们根据提示再进行修改。从这个过程之中,使我多多思考问题,不断摸索,尽量自己发现错误所在并加以改正,以便在下次不再犯同类型的错误。也就是说在调试的过程中,不断的学习,不断的改进,提高自身C语言学习能力和算法设计能力。五、 问题与讨论1、 分析你所构造散列表的查找成功的平均查找长度?012345678910333435363738394041321111111111查找成功的平均查找长度:(1+1+1+1+1+1+1+1+1+1)/10=12、 堆排序属于什么类型的排序?它适合于什么要求的排序,其空间按复杂度和时间复杂度如何?答:堆排序属于树形选择排序方法,它适合于排序较大文件的排序方法,是不稳定的。空间复杂度为O(1),时间复杂度为O(nlog2n).

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1