下载此文档

第10章内部排序.ppt


文档分类:IT计算机 | 页数:约117页 举报非法文档有奖
1/ 117
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/ 117 下载此文档
文档列表 文档介绍
插入排序
快速排序
堆排序
归并排序
基数排序
各种排序方法的综合比较
第十章内部排序
概述
本章小结
习题十
概述
一、排序的定义
二、内部排序和外部排序
三、内部排序方法的分类
一、什么是排序?
排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。
例如:将下列关键字序列
52, 49, 80, 36, 14, 58, 61, 23, 97, 75
调整为
14, 23, 36, 49, 52, 58, 61 ,75, 80, 97
一般情况下,
假设含n个记录的序列为{ R1, R2, …, Rn }
其相应的关键字序列为{ K1, K2, …,Kn }
这些关键字相互之间可以进行比较,即在
它们之间存在着这样一个关系:
Kp1≤Kp2≤…≤Kpn
按此固有关系将上式记录序列重新排列为
{ Rp1, Rp2, …,Rpn }
的操作称作排序。
二、内部排序和外部排序
若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序;
反之,若参加排序的记录数量很大,
整个序列的排序过程不可能在内存中
完成,则称此类排序问题为外部排序。
三、内部排序的方法
内部排序的过程是一个逐步扩大
记录的有序序列长度的过程。
经过一趟排序
有序序列区
无序序列区
有序序列区
无序序列区
基于不同的“扩大”有序序列长度的方法,内部排序方法大致可分下列几种类型:
插入类
交换类
选择类
归并类
其它方法
待排记录的数据类型定义如下:
#define MAXSIZE 1000 // 待排顺序表最大长度
typedef int KeyType; // 关键字类型为整数类型
typedef struct {
KeyType key; // 关键字项
InfoType otherinfo; // 其它数据项
} RcdType; // 记录类型
typedef struct {
RcdType r[MAXSIZE+1]; // r[0]闲置
int length; // 顺序表长度
} SqList; // 顺序表类型
1. 插入类
将无序子序列中的一个或几个记录“插入”到有序序列中,从而增加记录的有序子序列的长度。
2. 交换类
通过“交换”无序序列中的记录从而得到其中关键字最小或最大的记录,并将它加入到有序子序列中,以此方法增加记录的有序子序列的长度。

第10章内部排序 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数 117
  • 收藏数 0 收藏
  • 顶次数 0
  • 上传人 中国课件站
  • 文件大小 0 KB
  • 时间2011-10-11
最近更新