实验报告6 内部排序_第1页
实验报告6 内部排序_第2页
实验报告6 内部排序_第3页
实验报告6 内部排序_第4页
实验报告6 内部排序_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实 验 报 告 课程名称 数据结构与算法 实验学期 2015 年 春季 学期所在学院 交通科学与工程学院 所属专业 交通信息与控制工程系 年级 2012 专业班级 学生姓名 学号 指导教师 实验最终成绩 实验报告(六)实验题目内部排序实验时间2015 年06 月 29日实验地点B07-B214实验成绩实验性质应用性设计性综合性教师评阅: 实验目的明确;操作步骤正确;设计文稿(表格、程序、数据库、网页)符合要求; 保存路径正确;实验结果正确;实验分析总结全面;实验报告规范;其他: 评阅教师签名:一、实验目的1 理解各种方法的排序过程及其依据的原则。2 能够根据算法设计的具体要求,正确编写程序实现

2、各类内部排序方法。3 了解各种排序方法的时间复杂度、空间复杂度和稳定性的差异。二、实验内容和要求(说明算法的时间复杂度)1) 给定一个不少于十个关键字的数列,编写直接插入排序算法,将数列调整为非递增有序的序列(以0号单元作为监视哨)。2) 给定一个不少于十个关键字的数列,编写快速排序算法,将数列调整为非递减有序的序列(以最后一个关键字作为枢纽)。三、主要设计思想与算法 (此处不够可加页,或在反面书写)1.插入排序。voidinsert_sort(int*array,unsignedintn)inti,j;inttemp;for(i=1;i0&*(array+j-1)temp;j-)*(arra

3、y+j)=*(array+j-1);*(array+j)=temp;2. 快速排序。void sort(int *a, int left, int right) if(left = right)/如果左边索引大于或者等于右边的索引就代表已经整理完成一个组了/ return ; int i = left; int j = right; int key = aleft; while(i j) /控制在当组内寻找一遍/ while(i j & key = aj) /而寻找结束的条件就是,1,找到一个小于或者大于key的数(大于或小于取决于你想升 序还是降序)2,没有符合条件1的,并且i与j的大小没有

4、反转/ j-;/向前寻找/ ai = aj; /找到一个这样的数后就把它赋给前面的被拿走的i的值(如果第一次循环且key是 aleft,那么就是给key)/ while(i = ai) /这是i在当组内向前寻找,同上,不过注意与key的大小关系停止循环和上面相反, 因为排序思想是把数往两边扔,所以左右两边的数大小与key的关系相反/ i+; aj = ai; ai = key;/当在当组内找完一遍以后就把中间数key回归/ sort(a, left, i - 1);/最后用同样的方式对分出来的左边的小组进行同上的做法/ sort(a, i + 1, right);/用同样的方式对分出来的右边的

5、小组进行同上的做法/ /当然最后可能会出现很多分左右,直到每一组的i = j 为止/ while(i j) /控制在当组内寻找一遍/ while(i j & key = aj) /而寻找结束的条件就是,1,找到一个小于或者大于key的数(大于或小于取决于你想升 序还是降序)2,没有符合条件1的,并且i与j的大小没有反转/ j-;/向前寻找/ ai = aj;/找到一个这样的数后就把它赋给前面的被拿走的i的值(如果第一次循环且key是 aleft,那么就是给key)/ while(i = ai) /这是i在当组内向前寻找,同上,不过注意与key的大小关系停止循环和上面相反,因为排序思想是把数往两

6、边扔,所以左右两边的数大小与key的关系相反/ i+; aj = ai; ai = key;/当在当组内找完一遍以后就把中间数key回归/ sort(a, left, i - 1);/最后用同样的方式对分出来的左边的小组进行同上的做法/ sort(a, i + 1, right);/用同样的方式对分出来的右边的小组进行同上的做法/ /当然最后可能会出现很多分左右,直到每一组的i = j 为止/四、实验结果(可以截图描述实验结果)五、实验分析总结(时间复杂度,以及实验过程中的心得体会)通过这次实验,我练习了书写插入排序和快速排序的算法。插入排序是O(n)级别的算法,而快排是在O(nlogn)级别的算法,但不稳定。快速排序适合在数列有序程度较低的情况下使用,这样可以发挥其最佳功能,如果数列基本有序,则用冒泡算法和插入算法较好。特别是在数据量

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论