版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构教程上机实验报告实验九 查找、排序 班 级:13级计本2班 姓 名: 杨宴强 学 号:201392130129实验九 查找、排序一、实验目的:掌握顺序查找和折半查找的思路掌握顺序查找和折半查找算法的程序实现3.掌握冒泡排序和选择排序的思路4.掌握冒泡排序和选择排序算法的程序实现。二、实验内容:顺序查找 折半查找3冒泡排序4.选择排序三、实验步骤及结果:161 顺序查找#includestdio.h#define MAXSIZE 30typedef structint key;/int为关键字key的数据类型char data;/其他数据SeqList;/顺序表元素类型int SeqSe
2、arch(SeqList R,int n,int k)/顺序查找int i=n;R0.key=k;/R0.key为查找不成功的监视哨while(Ri.key!=k)/由表尾向表头方向查找i-;return i;/查找成功返回找到的位置值否则返回0值void main()int i=0,j,x;SeqList RMAXSIZE;/建立存放顺序表元素的数组Rprintf(Intput data of list(-1 stop):n);/生成顺序表中的数据(-1结束)scanf(%d,&x);while(x!=-1)Ri.key=x;scanf(%d,&x);i+;printf(Intput dat
3、a of list(-1 stop):n);/输出顺序表中的数据for(j=0;j0)printf(Position of %d in Seqlist!:n,x,i+1);/找到输出在顺序表中的位置elseprintf(NO found %d in Seqlist!:n,x);/输出未找到信息printf(nSearch data in Seqlist,Intput data(-1 stop):n);scanf(%d,&x);16.2 折半查找#include#define MAXSIZE 30typedef structint key;char data;SeqList;int BinSea
4、rch(SeqList R,int n,int k)int low=0,high=n-1,mid;while(lowk)high=mid-1;elselow=mid+1;return -1;void main()int i;SeqList RMAXSIZE;for(i=1;i=12;i+)Ri.key=i*2;printf(Search 20 in Seqlist:n);i=BinSearch(R,12,20);if(i!=-1)printf(Position of 20 in Seqlist is %dn,i);elseprintf(NO found 20 in Seqlist!:n);pr
5、intf(Search 21 in Seqlist:n);i=BinSearch(R,12,21);if(i!=-1)printf(Position of 21 in Seqlist is %dn,i);elseprintf(NO found 21 in Seqlist!n);17.4 冒泡排序#include stdio.h#define MAXSIZE 30typedef structint key; /关键字项char data; /其他数据项RecordType; /记录类型void BubbleSort(RecordType R,int n) /对R1Rn这n个记录进行冒泡排序int
6、 i,j,swap;for(i=1;in;i+) /进行n-1趟排序swap=0; /设置未发生交换标志for(j=1;jRj+1.key) /如果R1大于Rj+i.key则交换Rj和Rj+1R0=Rj;Rj=Rj+1;Rj+1=R0;swap=1; /有交换发生if(swap=0)break; /本趟比较中未出现交换则结束排序(已排好) void main()int i=1,j,x;RecordType RMAXSIZE; /定义记录类型数组Rprintf(Input data of list (-1 stop):n); /给每一记录输入关键字直至-1结束scanf(%d,&x);while
7、(x!=-1)Ri.key=x;scanf(%d,&x);i+;printf(Output data in list:n); /输出表中各记录的关键字for(j=1;ji;j+)printf(%4d,Rj.key);BubbleSort(R,i-1); /进行冒泡排序printf(nOutput data in list after Sort:n); /输出冒泡排序后的结果for(j=1;ji;j+)printf(%4d,Rj.key);printf(n);17.7 选择排序#includestdio.h#define MAXSIZE 30typedef structint key;/关键字项
8、char data;/其它数据项RecordType;/记录类型void SelectSort(RecordType R,int n)/对R1-Rn这n个记录进行选择排序int i,j,k;for(i=1;in;i+)/进行n-1趟选择k=i;/假设关键字最小的记录为第i个记录for(j=i+1;j=n;j+)/从第i个记录开始的n-i+1个无序记录中选出关键字最小的记录if(Rj.keyRk.key)k=j;/保存最小关键字记录的存放位置if(i!=k)/将找到的关键字最小的记录与第i个记录交换R0=Rk;Rk=Ri;Ri=R0;void main()int i=1,j,x;RecordTy
9、pe RMAXSIZE;/定义记录类型数组Rprintf(Input data of list(-1 stop);n);/给每一个记录输入关键字直至-1结scanf(%d,&x);while(x!=-1)Ri.key=x;scanf(%d,&x);i+;printf(Output data in list:n);/输出表中各记录的关键字for(j=1;ji;j+)printf(%4d,Rj.key);printf(nSort:n);SelectSort(R,i-1);/进行选择排序printf(nOutput data in list after Sore:n);/输出选择排序后的结果for(j=1;ji;j+)printf(%4d,Rj.key);printf(n);四、实验总结: 查找又称检索,它也是数据处理中经常使用的一种重要的运算,在线性表上的查找方法有顺序查找,二分查找和分块查找。顺序查找是一种最简单的查找方法。它的基本思
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 研究生导学关系学业支持体系论文
- 环境正义空间差异理论X框架论文
- 网络谣言传播机制探析论文
- 慈善组织捐赠激励论文
- 心理韧性干预效果分析论文
- 车联网XVX通信协议资源分配论文
- 公共图书馆政策分析论文
- 4.2.2幅度调制的解调原理
- 口腔护理爱在细节中
- 护理消化系统疾病护理
- 2026年安徽省中考数学试题(原卷版)
- 2026年医师定期考核中医试题(完整版)附答案
- 口服抗栓药物消化道损伤防治共识2026
- 2026年gcp考试及答案
- 国家癌症中心2025年癌症统计报告
- 养老院出入院管理制度
- 郴州亚光高纯银电解项目环境影响报告书
- 《JBT 7052-2024六氟化硫高压电气设备用橡胶密封件技术规范》专题研究报告
- 体重管理门诊工作制度
- 钢筋混凝土盖板更换专项施工方案
- 2026年低碳技术与城市可持续发展
评论
0/150
提交评论