全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五 排序的操作(2)一、 实验目的1深刻理解排序的定义和各种排序方法的特点;2掌握常用的排序方法,并掌握用高级语言实现排序算法的方法。二、 实现提示起泡排序的排序过程:将第一个记录的关键字与第二个记录的关键字进行比较,若为逆序r1.keyr2.key,则交换;然后比较第二个记录与第三个记录;依次类推,直至第n-1个记录和第n个记录比较为止第一趟冒泡排序,结果关键字最大的记录被放在最后。对前n-1个记录进行第二趟冒泡排序,结果使关键字次大的记录被放在第n-1个位置。重复上述过程,直到“在一趟排序过程中没有进行过交换记录的操作”为止。快速排序的基本思想:通过一趟排序,将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录进行排序,以达到整个序列有序。快速排序的排序过程:对rst中记录进行一趟快速排序,附设两个指针i和j,设rp=rs,x=rp.key。初始时令i=s, j=t。首先从j所指位置向前搜索第一个关键字小于x的记录,并和rp交换。再从i所指位置起向后搜索,找到第一个关键字大于x的记录,和rp交换。重复上述两步,直至i=j为止。再分别对两个子序列进行快速排序,直到每个子序列只含有一个记录为止。三、 实验内容起泡排序与快速排序的实现,并统计每一种排序算法所耗费的时间。四、程序填空与调试#include#include#include#define N 10int EN = 213, 111, 222, 77, 400, 300, 987, 1024, 632, 555 ;void merge_step( int e, int a, int s, int m, int n )/* 两个相邻有序段的合并 */int i, j, k;k = i = s;j = m + 1;while( i = m & j=n )/* 当两个有序都未结束时循环 */if( ei = ej )/* 取其中小的元素复制 */ak+=ei+;elseak+ = ej+;while( i = m ) /* 复制还未合并完的剩余部分 */ak+ =ei+;while( j = n ) /* 复制还未合并完的剩余部分 */ ak+ = ej+;void merge_pass( int e, int a, int n, int len )/* 完成一趟完整的合并 */int f_s, s_end;f_s = 0;while( f_s + len = n ) /* 最后一段可能不足len个结点 */s_end =n-1;merge_step(e,a,f_s,f_s+len-1,s_end);/* 相邻有序段合并 */f_s = s_end + 1;/* 下一对有序段中左段的开始下标为上一对末尾+1 */if( f_s n )/* 当还剩一个有序段时, 将其从e复制到a */for( ; f_s n; f_s+ )af_s = ef_s;void merge( int e, int n )/* 二路合并排序 */int *p, len=1, f=0;p = (int *)malloc( n * sizeof(int) );while( len n ) /* 交替地在e和p之间来回合并 */if( f = 0 )merge_pass(e,p,n,len);elsemerge_pass(p,e,n,len);len*=2;/* 一趟合并后,有序结点数加倍 */f = 1 - f;/* 控制交替合并 */if( f = 1 )/* 当经过奇数趟合并时,从p复制到e */for( f = 0; f n; f+ )ef = pf;free( p );void main()int i;printf( 归并排序,初始数据序列为:n );for( i = 000; i N; i+ )printf( %d , E
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大学现代物流(物流信息化)试题及答案
- 2026年大学建筑电气与智能化(智能建筑)试题及答案
- 煤矿运料队考试题及答案
- 2026年高职眼视光技术(视光技术)试题及答案
- 鲅鱼圈期末考试题及答案
- 中专月考试题及答案
- 达州耀华的招生考试试题及答案
- 农村慢性病患者的家庭功能对疾病自我管理的调节研究报告
- 人民教育出版社2026年小学科学探究能力评估试题及答案
- 2025~2026学年陕西省安康市汉滨区度下学期适应性练习(二)九年级物理试卷
- 医疗机构医保稽核问题整改台账
- 2026年交通运输工程师考试题库
- 2026湖南益阳市消防救援支队消防文员招聘3人备考题库及答案详解(有一套)
- 田径项目核心训练计划
- 工程测量员保密意识考核试卷含答案
- 2025年齐齐哈尔泰来县人民法院招聘聘用制人员考试真题附答案
- 中核产业基金管理有限公司招聘笔试题库2026
- 2026年常德职业技术学院单招职业技能测试题库附答案详解(模拟题)
- 2026及未来5年中国煎药壶行业市场供需态势及发展趋向研判报告
- 切削液技术讲解
- 2026 年离婚协议书制式模板民政局制式
评论
0/150
提交评论