第七章#7.1排序概述以及各种排序的比较

本文详细解读了排序算法的分类,重点介绍了按存储介质划分的内部排序与外部排序,以及按比较器数量区分的串行与并行排序。深入理解了比较排序、基数排序、原地与非原地排序,以及稳定性和自然排序的概念。适合学习者了解排序算法在实际应用中的关键特性。
摘要由CSDN通过智能技术生成

将杂乱无章的数据按照一定规律顺次排列起来,即,将无序序列排成一个有序序列(从小到大或从大到小)的运算

如果参加排序的数据结点包括多个数据域,那么排序往往是针对其中某一个域而言

排序方法的分类:

  • 按数据存储介质:内部排序和外部排序

  • 按比较器个数:串行排序和并行排序

  • 按主要操作:比较排序和基数排序

  • 按辅助空间:原地排序和非原地排序

  • 按稳定性:稳定排序和非稳定排序

  • 按自然性:自然排序和非自然排序

按照存储介质分(重点):

  • 内部排序:数据量不大、存储在内存,无需内外存交换数据

  • 外部排序:数据量较大、数据在外存(文件排序)

    外部排序由于体量较大,只能先从外存中取部分到内存中排序,然后排完放回到外存中去,复杂的多

按比较器个数分(重点):

  • 串行排序:单处理机(同一时刻比较一对元素)

  • 并行排序:多处理机(同一时刻比较多对元素)

按主要操作分(重点):

  • 比较排序:用比较的方法

    插入排序、交换排序、选择排序、归并排序

  • 基数排序:不比较元素的大小,仅仅根据元素的取值确定其有序位置

按辅助空间分:

  • 原地排序:辅助空间用量O(1)的排序方法

    (所占的辅助储存空间与参加排序的数据量大小无关)

  • 非原地排序:辅助空间用量超过O(1)的排序方法

按稳定性分:

  • 稳定排序:能够使任何数值相等的元素,排序以后相对次序不变

  • 非稳定性排序:不是稳定排序的方法

排序的稳定性只对结构类型数据排序有意义

 

按自然性分:

  • 自然排序:输入数据越有序,排序速度越快的排序方法

  • 非自然排序:不是自然排序的方法

本章的所有介绍都是基于顺序表存储结构的,具体算法详见本专栏的其他篇目

//储存结构——记录序列以顺序表存储
#define MAXSIZE 20//设置记录不超过20个
typedef int KeyType;//设关键字为整型类(int型)

typedef struct {//定义每个记录(数据元素)的结构
    KeyType key;//关键字
    InfoType otherinfo;//其他数据项
} RedType;//Record Type

typedef struct {//定义顺序表结构
    RedType r[MAXSIZE+1];//存储顺序表的向量,r[0]一般作哨兵或缓冲区
    int length;//顺序表的表长
} SqList;

###各种排序的比较###

各种排序的比较用于学习完所有排序方法后的总结,若还未学习完,请先学习后面文章的知识后再来看这个比较

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值