第十章 内部排序精要.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 内部排序精要

10.5 归并排序------非递归实现 Void Mergesort(rcdtype R[ ]) //对R进行二路归并排序,结果仍在R中 { int length=1; while (length=n) { mergepass(R,R1,length); //一趟归并,结果在R1中 length=2*length; mergepass(R1,R,length); //再次归并,结果在R中 length=2*length; } } 10.5 归并排序------递归实现 请同学们思考: 1、递归求解的三个条件? 2、归并排序中如何体现这三个条件? 10.5 归并排序------递归实现 void Msort(Rcdtype SR[ ],Rcdtype TR1[ ], int s, int t) //将SR[s..t]归并排序为TR1[s..t] { if (s= =t) TR1[s]=SR[s];  //递归出口 else { m=(s+t)/2; //将SR[s..t]平分为SR[s..m]和SR[m+1..t] Msort(SR, TR2,s,m); Msort(SR,TR2,m+1,t); Merge(TR2,TR1,s,m,t); //将TR2[s..m]和TR2[m+1..t] } //归并到TR1[s..t] } void MergeSort(SqList L) //对表L作归并排序 { Msort(L.r, L.r, 1, L.length); } * * 第十章 内部排序 排序(sort):将一组数据元素任意的序列,重新排列成一组按 关键字有序的序列。 稳定与不稳定:一种排序方法,如果排序后具有相同关键字的 记录仍维持排序之前的相对次序,则称之为稳定 的,否则称为不稳定的。 例如: 排序前为: 49,38,65,97,76,13,27,49’ 排序后为: 13,27,38,49,49’,65,76,97 该排序是稳定的 13,27,38,49’,49,65,76,97 该排序是不稳定的 内部排序:待排序的数据若存储在内存中,在内 存中加以处理的,这种排序方法叫内部排序。 外部排序:如果在排序过程中,数据的主要部分 存放在外存储器中(如软盘、硬盘、磁带),借 助内存进行内、外存数据交换,逐步排列记录之 间的顺序,则称之为外部排序。 内部排序可分五类:插入排序、交换排序、选择 排序、归并排序和计数(分配)排序。 10.1 概 述 待排序记录的存储方式: 1)地址连续的一组存储单元(顺序存储),排序时需移动记录 2)静态链表,排序时不需移动记录,仅需修改指针 3)记录存放在地址连续的一组存储单元中,再设一组地址向量,排序时不需移动记录,结束后再调整记录的存储位置。 待排记录的数据类型: (以第一种方式讨论) #define MAXSIZE 20 typedef int KeyType ; typedef struct { KeyType key; InfoType otherinfo; }RedType; //记录类型 typedef struct { RedType r[MAXSIZE+1]; //r[0]闲置或作岗哨 int length; }SqList; //表的类型 10.1 概 述 10.2 插入排序 10.2.1 直接插入排序 直接插入排序:将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增一的有序表。 void Insertsort(Sqlist L) { for (i=2; i=L.length; ++i) if (LT(L.r[i].key, L.r[i-1].key)) //需将L.r[i-1]插入到有序子表 { L.r[0]=L.r[i]; //将L.r[i]复制到岗哨

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档