三、内部排序的方法 内部排序的过程是一个逐步扩大 记录的有序序列长度的过程。 有序序列区无序序列区 经过一趟排序 有序序列区无序序列区
三、内部排序的方法 内部排序的过程是一个逐步扩大 记录的有序序列长度的过程。 经过一趟排序 有序序列区 无 序 序 列 区 有序序列区 无 序 序 列 区
基于不同的“扩大”有序序列长 度的方法,内部排序方法大致可分 下列几种类型 插入类交换类选择类 归并类其它方法
基于不同的“扩大” 有序序列长 度的方法,内部排序方法大致可分 下列几种类型: 插入类 交换类 选择类 归并类 其它方法
排录的数类型定频序表最大长度 typedef int KeyType;∥/关键字类型为整数类型 typedef struct i KeyType key ∥关键字项 InfoType otherinfo;∥其它数据项 3 RcdType, ∥记录类型 typedef struct t RcdType rMAXSIZE+1;/r10闲置 int length; ∥顺序表长度 i Sqlist ∥顺序表类型
#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插入类 将无序子序列中的一个或几 个记录“插入”到有序序列中, 从而增加记录的有序子序列的长 度
1. 插入类 将无序子序列中的一个或几 个记录“插入”到有序序列中, 从而增加记录的有序子序列的长 度
2.交换类 通过“交换”无序序列中的记 录从而得到其中关键字最小或最大 的记录,并将它加入到有序子序列 中,以此方法增加记录的有序子序 列的长度
2. 交换类 通过“交换”无序序列中的记 录从而得到其中关键字最小或最大 的记录,并将它加入到有序子序列 中,以此方法增加记录的有序子序 列的长度