[排序/C++]1. 排序基础知识和总结

本文全面介绍了排序算法的基础知识,包括插入排序、交换排序、选择排序、归并排序和基数排序等主要方法。深入探讨了每种排序算法的特点,如稳定性、时间性能和空间性能,并提供了详细的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 排序基础知识和总结

#define MAXSIZE 20 //设记录不超过20个
typedef int KeyType;//设关键字为int型
//定义每个记录(数据元素)的结构
typedef struct {
    KeyType key;//关键字
    // InfoType otherinfo;//其他数据项,这里暂时不需要
}ReadType;//Record Type
//定义顺序表的结构
typedef struct{
    ReadType nums[MAXSIZE + 1];//存储顺序表的向量;r[0]一般作哨兵或缓冲区,不用来存储数据记录
    int length;//顺序表的长度
};

注:特别注意以下几点!!!

  1. 后续和排序有关的文章都采用以上的存储结构;
  2. 为了统一,后续和排序有关的算法中,L.nums[0]作为哨兵位,记录/数据元素从序列的索引1开始存入,即L.nums[1]开始存入
  • 排序算法的稳定性
    按稳定性可分为:稳定排序非稳定排序

    1. 稳定排序:排序时存在数值相等的元素,排序后相对位置不发生改变。
    2. 非稳定排序:不是稳定排序的方法。
  • 各种排序方法比较:
    各种排序方法比较

  1. 时间性能
    时间性能1

快速排序缺点:递归实现,空间复杂度较高
基数排序缺点:不是对所有的需要排序的关键字都适用时间性能2
快速排序越乱越好,尽量避免在基本有序的情况下使用快速排序

  1. 空间性能
    指的是排序过程中所需的辅助空间大小
    空间性能

  2. 稳定性能
    稳定性能

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值