26考研——排序_排序的基本概念(8)

408答疑



一、排序的基本概念

相关概念

  • 定义:排序是将表中的元素按照关键字递增或递减的顺序重新排列的过程。
  • 输入 n n n 个记录 R 1 , R 2 , ⋯   , R n R_1, R_2, \cdots, R_n R1,R2,,Rn,对应关键字为 k 1 , k 2 , ⋯   , k n k_1, k_2, \cdots, k_n k1,k2,,kn
  • 输出:输入序列的一个重排 R 1 ′ , R 2 ′ , ⋯   , R n ′ R'_1, R'_2, \cdots, R'_n R1,R2,,Rn,满足 k 1 ′ ≤ k 2 ′ ≤ ⋯ ≤ k n ′ k'_1 \leq k'_2 \leq \cdots \leq k'_n k1k2kn(“ ≤ \leq ”可替换为其他比较符号)。
  • 稳定性:若待排序表中有两个元素 R i R_i Ri R j R_j Rj,其对应的关键字相同,即 k e y i = k e y j key_i = key_j keyi=keyj,且在排序前 R i R_i Ri R j R_j Rj 的前面,若使用某一排序算法排序后, R i R_i Ri 仍然在 R j R_j Rj 的前面,则称这个排序算法是稳定的,否则称这个排序算法是不稳定的。
    • 稳定性验证:例如,若输入序列为 ( 3 , 2 1 , 2 2 ) (3, 2_1, 2_2) (3,21,22)(下标表示初始顺序),排序后若为 ( 2 1 , 2 2 , 3 ) (2_1, 2_2, 3) (21,22,3),则算法稳定;若为 ( 2 2 , 2 1 , 3 ) (2_2, 2_1, 3) (22,21,3),则不稳定。

分类方式

排序算法可根据不同需求划分为以下类别:

  1. 根据数据存储位置

    • 内部排序:排序期间所有元素完全存放在内存中。
    • 外部排序:排序期间元素需在内、外存之间频繁移动(适用于数据量过大时)。
  2. 根据重复元素的相对位置是否变化

    • 稳定排序:若排序前 R i R_i Ri R j R_j Rj 前且 k i = k j k_i = k_j ki=kj,排序后 R i R_i Ri 仍在 R j R_j Rj 前。
    • 不稳定排序:存在至少一组实例使得上述条件不成立。
  3. 根据时间复杂度

    • 简单排序:时间复杂度高于 O ( n log ⁡ 2 n ) O(n\log_2 n) O(nlog2n)(如直接插入排序)。
    • 先进排序:时间复杂度为 O ( n log ⁡ 2 n ) O(n\log_2 n) O(nlog2n) 或更低(如快速排序、归并排序)。
  4. 根据实现手段

    • 插入排序交换排序选择排序归并排序基数排序

算法性质

  • 稳定性:稳定性不决定算法优劣,仅描述算法特性。若关键字唯一,稳定性无关紧要。
  • 性能决定因素
    • 时间复杂度:主要由比较和移动操作的次数决定。
    • 空间复杂度:排序过程中所需的额外存储空间。

内部排序的特点

  • 核心操作:比较(确定元素顺序)和移动(调整元素位置)。
  • 例外:基数排序不依赖比较操作。
  • 适用性:大多数内部排序算法更适合顺序存储的线性表。

注意事项

  • 对于不稳定排序算法,只需举出一组关键字实例即可证明其不稳定性。
  • 不存在“全面最优”的排序算法,需根据具体场景(数据规模、存储方式等)选择合适算法。

九、参考资料

鲍鱼科技课件

b站免费王道课后题讲解:
在这里插入图片描述

网课全程班:
在这里插入图片描述

26王道考研书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

408答疑+v:18675660929

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值