直接插入排序冒泡排序快速排序—于—实验七_第1页
直接插入排序冒泡排序快速排序—于—实验七_第2页
直接插入排序冒泡排序快速排序—于—实验七_第3页
直接插入排序冒泡排序快速排序—于—实验七_第4页
直接插入排序冒泡排序快速排序—于—实验七_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、直接插入排序冒泡排序快速排序一于一实验七宁德师范学院计算机系实验报告(20142015学年第一学期)课程名称数据结构实验名称实验七数据的排序与检索专业计算机科学与技术年级2013级B2013102学号姓名于141指导教师毛雁明实验日期2014-12-2实验目的与要求:1、掌握数据结构中的几种常用排序方法:插入排序、快速排序、选择排序等。2、遇到实际问题能够选择适当的排序方法解决。实验设备(环境):微机、C语言编程环境(VC+实验内容:给定的数组listN=213,111,222,77,400,300,987,1024,632,555试分别用直接插入排序、冒泡排序、快速排序对上述数据进行排序。要

2、求:每种排序算法编写为独立的自定义函数且要求输出每趟排序后的数据排列序列情况。7 / 8实验步骤、实验结果及分析:函数代码#include#definen10typedefstructintkey;RecType;typedefRecTypeSeqListn+1;voidinsertSort(SeqListr)inti,j;for(i=2;i=n;i+)r0=ri;j=i-1;while(r0.keyrj.key)rj+1=rj;j-;rj+1=r0;voidbubblesort(SeqListr)inti,j,exchange;for(i=1;i=i;j-)if(rj+1.keyrj.key

3、)r0=rj+1;rj+1=rj;rj=r0;exchange=1;if(!exchange)break;intpartition(SeqListr,inti,intj)RecTypepivot=ri;while(ij)while(i=pivot.key)j-;if(ij)ri+=rj;while(ij&ri.key=pivot.key)i+;if(ij)rj-=ri;ri=pivot;returni;voidquicksort(SeqListr,intlow,inthigh)intpivotpos;if(lowhigh)pivotpos=partition(r,low,high);quick

4、sort(r,low,pivotpos-1);quicksort(r,pivotpos+1,high);main(void)intlow=1,high=10;SeqListr=0,213,111,222,77,400,300,987,1024,632,555;inti;n);n);insertSort(r);printf(直接插入排序算法:for(i=1;i=n;i+)printf(%-6d,ri);printf(n);bubblesort(r);printf(冒泡排序算法:for(i=1;i=n;i+)printf(%-6d,ri);printf(n);quicksort(r,low,hig

5、h);printf(快速排序算法:nfor(i=1;i=n;i+)printf(%-6d,ri);printf(n);(2)主函数流程图(3)运行结果第i趟结果第2池事臬冒泡排序:军1趟结果 第2趟结果 第3趟结果 第”0结果 第5趟结果 第6强结果 第7趟结果 第8趟结果 第9趟结果第1趟结果 第2趟结果 第m趟结果 第4超结果 第s榭给果 重6箱器巢-772131112223004009871024G32-7?1112132223004U0555632 198?1024111.213t 222直接插入排序; :77 4009871024632555-111213! 222:774萌3009

6、871024632555?7111213222003009871024632555-771112132224酗3098710246325ss7711121322230340098710246325S577111213222300400VB71024632S55771112132223004009871024G3255577111213222300400632987102455577111213222300400555632?871日24?7111213快速排序*222 AWA 3Q098?1024632SS5-771112132224003009871024632555771112132223

7、00987102432鹃B7711121322230040098710246325557711121322230040B555632 1J8710247711121322230040 B555632 1?871024to continuePprts any key(4)实验总结本实验主要考查直接插入排序、冒泡排序、快速排序三项函数调用,难度还是有的,需要我们首先理解这三种排序方式,排序实质,然后我们就需要写程序代码,主函数还是很好写的,快速排序算法代码是个难点,还要嵌套一个调用函数需要我们在草稿纸上事先演算下,进行多次调试,达到要求。直接插入排序的方法是首先在当前有序区ri.i-1中查找人ri的正常插入位置k;然后将rk.i-1中的记录均后移一个位置,腾出k位置上的空间插入ri。其他方法与这有点不同,画主函数流程图要求我们对代码整体有个框架认识,首先动态分配空间,建立顺序表,然后输入整数进行判断,不符合时继续输入整数,符合时进行选择,然后执行功能,选择退出时,整个程序都退出。虽然经过上学期对C语言半年的学习可以说掌握的基本可以,但是几天不练就会手生,甚至不知如何下手,这时我们要查阅课本,通过这次实验的练习,我在学习数据结构的同时也对C语言进行了

温馨提示

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

评论

0/150

提交评论