- 2
- 0
- 约1.71万字
- 约 52页
- 2018-05-04 发布于四川
- 举报
概述 插入排序 交换排序 选择排序 归并排序 基数排序 各种内部排序方法的比较 第一节 概述 排序(Sorting):假设含n 个记录的序列为 {R1, R2,…, Rn}, 其相应的关键字序列为 {K1, K2,…, Kn},需确定1,2,…,n 的一种序列p1, p2,…, pn,使其相应的关键字满足如下的非递减 (或非递增)关系 ,即使上式的序列成为 一个按关键字有序的序列 {Rp1, Rp2,…, Rpn} ,这样一种操作 称为排序。 假设Ki = Kj 且在排序前的序列中Ri 领先于Rj(即i j)。若在排序后的序列中Ri仍领先于Rj,则称所用 的排序方法是稳定的;反之,若可能使排序后的序列中Rj仍领先于 Ri,则称所用的排序方法是不稳定的。 由于待排序的记录数量不同,使得排序过程中涉及的存储器不同, 可将排序方法分为两大类: 一类是内部排序,指的是待排序记录存放在计算机随机存储器中 进行的排序过程; 另一类是外部排序,指的是待排序记录的数量很大,以致内存一 次不能容纳全部记录,在排序过程中尚需对外存进行访问的排序 过程。 按排序过程中依据的不同原则对内部排序方法进行分类,可大致 分为插入排序、交换排序、选择排序、归并排序和基数排序等五类; 按内部排序过程中所需的工作量来区分,可分为三类: (1)简单的排序方法,其时间复杂度为 O( n2 ); (2)先进的排序方法,其时间复杂度为 O( n log n ); (3)基数排序,其时间复杂度为 在排序的过程中需进行下列两种操作: (1)比较两个关键字的大小; (2)将记录从一个位置移动至另一个位置。 待排序的记录序列可有下列三种存储方式: (1)待排序的一组记录存放在地址连续的一组存储单元上。 (2)一组待排序记录存放在静态链表中,记录之间的次序关系由 指针指示,则实现排序不需移动记录,仅需修改指针即可。 (3)待排序记录本身存储在一组地址连续的存储单元内,同时另 设一个指示各个记录存储位置的地址向量,在排序过程中不移动 记录本身,而移动地址向量中这些记录的“地址”,在排序结束后再 按照地址向量中的值调整记录的存储位置。 在(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; // 顺序表类型 第二节 插入排序 直接插入排序 其它插入排序 希尔排序 直接插入排序 直接插入排序(Straight Insertion Sort)是一种最简单的排序方法, 它的基本操作是将一个记录插入到已排好序的有序表中,从而得到 一个新的、记录增1的有序表。(此排序方法是稳定的) 直接插入排序算法 void InsertSort( SqList L) { // 对顺序表L 作直接插入排序。 for ( i = 2; i=L.length; ++ i) if ( LT(L.r[i].key , L.r[i-1].key ) { //’‘, 需将L.r[i]插入有序子表 L.r[0]=L.r[i]; // 复制为哨兵 for ( j=i-1; LT( L.r[0].key, L.r[j].key); --j) L.r[j+1] = L.r[j]; // 记录后移 L.r[j+1] = L.r[0]; // 插入到正确位置 } } // InsertSort 直接插入排序示例 [初始关键字] 其它插入排序 折半插入排序(稳定的排序方法) void BInsertSort( SqList L) { // 对顺序表L作折半插入排序 for
您可能关注的文档
最近下载
- 部编版小学语文六年级下册第二单元集体备课教材分析.pdf VIP
- 江西20102011学年普通中学.doc VIP
- 中国竞技麻将比赛规则.doc VIP
- 冠脉搭桥手术的技术和风险.pptx VIP
- 2024年改良型新药行业研究报告及未来五至十年预测分析报告.docx
- 烟雾病和烟雾综合征临床管理指南(2025版).pptx VIP
- 一种水合物动力学抑制剂及其制备方法和应用.pdf VIP
- 2026年牛津译林版中考英语新课标1500个单词背诵清单.pdf
- 疥疮诊疗中国专家共识(2026版)解读PPT课件.pptx VIP
- 《烟雾病和烟雾综合征诊断与治疗中国专家共识(2024)》解读PPT课件.pptx VIP
原创力文档

文档评论(0)