




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
江南大学物联网工程学院上机报告课程名称 数据结构 上机名称 排序 上机日期 2013- - 班 级 计科1203 姓 名 汪俊 学号 1030412314上机报告要求 1上机名称 2上机要求 3上机环境 4程序清单(写明运行结果) 5上机体会 1. 上机名称排序,实验52. 上机要求 调试实验一,补充实验2主函数,完成实验3 3. 上机环境 Visual C+ 6.04.程序清单(写明运行结果) 一、#include#define N 10#define FALSE 0#define TRUE 1typedef int KeyType;typedef char InfoType;typedef struct KeyType key;InfoType otherinfo;RecType;typedef RecType SeqlistN+1;int m,num; /全局变量m存储输出的是第几趟结果,num存储递归调用的次数Seqlist R;void Insertsort();void Bubblesort();void Selectsort();void main()Seqlist S;int i;char ch1,ch2;printf(请输入10个待排序的数据:(每两个数据间用空格隔开)n);for(i=1;i=N;i+)scanf(%d,&Si.key);ch1=y;while(ch1=y|ch1=Y)printf(*菜单*n);printf(请选择下列操作:n);printf(1-更新待排序数据-n);printf(2-直接插入排序-n);printf(3-冒泡排序-n);printf(4-直接选择排序-n);printf(5-退出-n);printf(请选择操作类别:n);scanf(n%c,&ch2);switch(ch2)case 1:printf(请输入更新待排序数据:n);for(i=1;i=N;i+)scanf(%d,&Si.key);break;case 2:printf(请输入要输出第几趟排序结果:n);scanf(%d,&m);for(i=1;i=N;i+)Ri.key=Si.key;Insertsort();break;case 3:printf(请输入要输出第几趟排序结果:n);scanf(%d,&m);for(i=1;i=N;i+)Ri.key=Si.key;Bubblesort();break;case 4:printf(请输入要输出第几趟排序结果:n);scanf(%d,&m);for(i=1;i=N;i+)Ri.key=Si.key;Selectsort();break;case 5:ch1=n;break;default:ch1=n;void Insertsort()int i,j,k;for(i=2;i=N;i+)if(Ri.keyRi-1.key)R0=Ri;j=i-1;while(R0.keyRj.key) /*从右向左在有序区R1.i-1中查找Ri的插入位置*/Rj+1=Rj;j-;Rj+1=R0;if(i-1=m)printf(第%d趟的结果是:n,m);for(k=1;k=N;k+)printf(%5d,Rk.key);printf(n);printf(请输入还想输出第几趟结果,不想输出时请输入0:n);scanf(%d,&m);if(m!=0)printf(最终排序结果是:n);for(k=1;k=N;k+)printf(%5d,Rk.key);printf(n);void Bubblesort()/自下向上 int i,j,k;int exchange;for(i=1;i=i;j-)if(Rj+1.keyRj.key)R0=Rj+1;Rj+1=Rj;Rj=R0;exchange=TRUE;if(i=m)printf(第%d趟的结果是:n,m);for(k=1;k=N;k+)printf(%5d,Rk.key);printf(n);printf(请输入还想输出第几趟结果,不想输出时请输入0:n);scanf(%d,&m);if(!exchange)|(m=0)break;if(m!=0)printf(最终排序结果是:n);for(k=1;k=N;k+)printf(%5d,Rk.key);printf(n);void Selectsort()int i,j,k,h;for(i=1;iN;i+)h=i;for(j=i+1;j=N;j+)if(Rj.keyRh.key)h=j;if(h!=i)R0=Ri;Ri=Rh;Rh=R0;if(i=m)printf(第%d趟的结果是:n,m);for(k=1;k=N;k+)printf(%5d,Rk.key);printf(n);printf(请输入还想输出第几趟结果,不想输出时请输入0:n);scanf(%d,&m);if(m!=0)printf(最终排序结果是:n);for(k=1;k=N;k+)printf(%5d,Rk.key);printf(n);二、#include#define N 4#define false 0#define ture 1typedef int keytype;typedef char infotype;typedef struct keytype key;infotype otherinfo;rectype;typedef rectype seqlistN+1;int m,num;seqlist R;void quicksort(seqlist &R ,int s,int t)int i=s,j=t;if(ij)R0=Ri;dowhile(i=R0.key)j-;if(ij)Ri=Rj;i+;while(ij&Ri.key=R0.key)i+;if(ij)Rj=Ri;j-;while(i0)for(i=gap;i=1&R0.keyRj.key)Rj+gap=Rj;j=j-gap;Rj+gap=R0;j=j-gap;gap=gap/2;void sift(seqlist &R ,int v,int n)int i,j;i=v;j=2*i;R0=Ri;while(j=n)if(jn&Rj.keyRj+1.key)j+;if(R0.key=1;i-)sift(R,i,n);for(i=n;i=2;i-)R0=Ri;Ri=R1;R1=R0;sift(R,1,i-1);void show(seqlist &R,int n)int i;for(i=1;i=n;i+)printf(%d,Ri.key);void main()seqlist S;int i;char ch1,ch2;printf(请输入4个待排元素:(每两个数据间用空格隔开)n);for(i=1;i=N;i+)scanf(%d,&Si.key);ch1=y;while(ch1=y|ch1=Y)printf(*菜单*n);printf(请选择下列操作:n);printf(1-更新待排数据-n);printf(2-快速排序-n);printf(3-希尔排序-n);printf(4-堆排序-n);printf(5-退出-n);printf(请选择操作类型:n);scanf(n%c,&ch2);switch(ch2)case1:printf(请输出更新待排数据:n);for(i=1;i=N;i+)scanf(%d,&Si.key);break;case2:quicksort(S,1,4);show(S,4);break;case3:shellsort(S,4);show(S,4);break;case4:heapsort(S,4);show(S,4);break;case5:ch1=n;break;default:ch1=n;三、#include#include#includeusing namespace std;#define N 6#define false 0#define ture 1typedef int keytype;typedef string infotype;typedef struct keytype paim;keytype key;infotype otherinfo;rectype;typedef rectype seqlistN+1;int m,num;seqlist R;void quicksort(seqlist &R ,int s,int t)int i=s,j=t;if(ij)R0=Ri;dowhile(i=R0.key)j-;if(ij)Ri=Rj;i+;while(ij&Ri.key=R0.key)i+;if(ij)Rj=Ri;j-;while(i0)for(i=gap;i=1&R0.keyRj.key)Rj+gap=Rj;j=j-gap;Rj+gap=R0;j=j-gap;gap=gap/2;void sift(seqlist &R ,int v,int n)int i,j;i=v;j=2*i;R0=Ri;while(j=n)if(jn&Rj.keyRj+1.key)j+;if(R0.key=1;i-)sift(R,i,n);for(i=n;i=2;i-)R0=Ri;Ri=R1;R1=R0;sift(R,1,i-1);void show(seqlist &R,int n)int i,j,m;for(i=6;i=1;i-)Ri.paim=7-i;if(Ri.key=Ri+1.key)Ri.paim=Ri+1.paim;cout姓名为: Ri.otherinfo;cout 成绩为: Ri.key;cout 名次为: Ri.paimendl;void main()seqlist S;int i;char ch1,ch2;printf(请输入6个成绩:n);for(i=1;i=N;i+)scanf(%d,&Si.key);printf(请输入6个学生姓名:n);for(i=1;iSi.otherinfo;ch1=y;while(ch1=y|ch1=Y)printf(*菜单*n);printf(请选择下列操作:n);printf(1-更新成绩-n);printf(2-快速排序-n);printf(3-希尔排序-n);printf(4-堆排序-n);printf(5-退出-n);printf(请选择操作类型:n);scanf(n%c,&ch2);switch(ch2)case1:printf(请输出更新的成绩:n);for(i=1;i=N;i+)scanf(%d,&Si
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园消防安全防患未燃模板(3篇)
- 2025年宠物医疗助理面试模拟题及参考答案
- 2025年安全生产安全知识培训题及答案解析
- 2025年宠物美容师初级面试常见问题及答案解析大全
- 2025年机器人编程调试题库解析
- 2025年求职宝典XX行业招聘笔试全真模拟试题集及解析
- 母亲节晚会献词模板
- 2025年口腔医学专家资格考试试题及答案解析
- 2025年乡村旅游人才面试问题及答案解析
- 2025年交通工程师执业资格考试试题及答案解析
- 水库引调水工程可行性研究报告(参考范文)
- 8.1薪火相传的传统美德同步课件 -2024-2025学年统编版道德与法治七年级下册
- 化妆画眉培训课件
- 2025年小学语文教师招聘考试专业知识全真模拟试题及答案(共七套)
- 【2024年秋季版】统编版七年级语文上册集体备课教学设计合集
- 基于PMTS传感器的GH4169智能螺栓(紧固件)技术规范
- 2024-2025学年人教版数学七年级下册期末测试卷 (含答案)
- 2025年合伙项目新增合伙人协议书
- 小学教师资格证笔试科目二-《教育教学知识与能力》124道简答题
- 2025年度煤矿开采权有偿出让中介代理合同4篇
- 2022-2023学年仁爱版英语九年级上册单词、词组、句子背默
评论
0/150
提交评论