



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构实验报告学院:数学科学学院专业: 信息与计算科学实验名称用任意方法对给定的数组排序成绩姓名年级2011学号201110701160一、 实验目的:1熟悉并掌握各种排序方法的设计思路。2掌握在计算机上实现的各种具体排序操作。二、 实验内容1实现插入排序操作(插入排序基本思想:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的序列中的适当位置,直到全部记录插入完成为止)。2实现交换排序操作(交换排序基本思想:在待排序的序列中,找到不满足有序性的两个关键字,交换位置,以满足有序性,重复整个过程直到该序列中的所有关键字都有序为止)。3实现选择排序操作(选择排序基本思想:每一趟从待排序的记录中选出关键字最小的记录,并顺序放在已排好序的序列的最后,直到全部记录排序好为止。三、 实验步骤:采用的数据描述为:#define MAXSIZE 100/*数组的最大长度*/typedef int keytypetypedef struct keytype key;/*关键字项*/ infotype otherinfo;/*其它数据项*/redtype;typedef struct redtype rMAXSIZE+1;/*存放记录中各个数据项的数组*/ int length;/*数组长度*/ Sqlist;1对给定的数组,用直接插入排序(插入排序的一种)对它进行排序,观察数组在排序前后的变化情况。2对给定的数组,用起泡排序(交换排序的一种)对它进行排序,观察数组在排序前后的变化情况。3对给定的数组,用直接选择排序(选择排序的一种)对它进行排序,观察数组在排序前后的变化情况。四、 程序流程:(1)直接插入排序:#define MAXSIZE 100#define N 10typedef int keytype;typedef structkeytype key;redtype;typedef structredtype rMAXSIZE+1;int length;Sqlist;Sqlist insertsort(Sqlist L)/*直接插入排序函数*/ int i,j; L.length=N; for (i=2;i=L.length;+i) if (L.ri.keyL.ri-1.key) L.r0=L.ri; /*L.r0具有监视哨的作用*/ for(j=i-1;L.r0.keyL.rj.key;-j) L.rj+1=L.rj; /*记录后移*/ L.rj+1=L.r0; return L;main()/*主函数*/Sqlist L;int i; printf(please input 10 data:n);/*请求输入10个数据*/ for(i=1;i=N;i+) scanf(%d,&L.ri.key); L=insertsort(L);/*调用直接插入排序函数*/ printf(after insert sort data is:n);/*输出排序后的序列*/ for(i=1;i=N;i+) printf(%5d,L.ri.key); (2)起泡排序:#include#define MAXSIZE 100#define N 10typedef int keytype;typedef structkeytype key;redtype;typedef structredtype rMAXSIZE+1;int length;Sqlist;Sqlist bubblesort(Sqlist L)/*起泡排序函数*/int i,j; redtype temp; L.length=N; for (i=1;i=L.length-1;+i) for(j=1;j=L.length-i;+j) if (L.rj+1.keyL.rj.key) temp=L.rj; L.rj=L.rj+1; L.rj+1=temp; /*数据交换*/return L;main()/*主函数*/Sqlist L; int i;printf(please input 10 data:n);/*请求输入10个数据*/for(i=1;i=N;i+) scanf(%d,&L.ri.key);L=bubblesort(L);/*调用起泡排序函数*/printf(after bubblesort data is:n);/*输出排序后的序列*/for(i=1;i=N;i+) printf(%5d,L.ri.key);(3)直接选择排序:#define MAXSIZE 100#define N 10typedef int keytype;typedef structkeytype key;redtype;typedef structredtype rMAXSIZE+1;int length;Sqlist;Sqlist selectsort(Sqlist L)/*直接选择排序函数*/ int i,j,k; redtype temp; L.length=N; for(i=1;i=L.length-1;+i) k=i; for(j=i+1;j=L.length;+j) if (L.rj.keyL.rk.key) k=j; /* k始终“指向”关键字最小的记录*/ if (k!=i) temp=L.ri; L.ri=L.rk; L.rk=temp; return L;main()/*主函数*/Sqlist L;int i; printf(please input 10 data:n);/*请求输入10个数据*/ for(i=1;i=N;i+) scanf(%d,&L.ri.key);/*调用直接选择排序函数*/ L=selectsort(L); printf(after selectsort
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家政保姆中介合同范本
- 广告制作安装合同书范本3篇
- 建筑节能行业新技术应用方向
- 农业科技示范园规划初步设计中的农业市场潜力评估报告
- 农产品品牌建设资金申请报告:2025年行业发展趋势与竞争格局分析
- 河北省衡水市安平县安平中学2025-2026学年高一上学期开学测试思想政治试卷
- 2025年信号与系统试卷及答案
- 小米解锁l题库及答案
- 2025年交通设计试题及答案
- 2025年士兵军校试题及答案
- 2024春期国开电大本科《商法》在线形考(形成性考核作业一至四)试题及答案
- JJF 1033-2023 计量标准考核规范
- 九年级历史上册教材课后习题参考答案
- 血液透析的标准预防课件
- 全科规培:门诊SOAP病历考核模拟文档
- 《能源概论》课件
- 2023年湖南长沙湘江新区所属事业单位招聘12人笔试参考题库(共500题)答案详解版
- 插花艺术与花艺课件
- CADCAM应用技术(CAXA2020)中职全套教学课件
- 生物医学工程伦理 课件全套 第1-10章 生物医学工程与伦理-医学技术选择与应用的伦理问题
- 仓库管理作业流程规范
评论
0/150
提交评论