高级数据结构与算法基本概念

排序是对一个序列中的记录进行排序的操作

基本概念
• 序列 (Sequence):线性表
• 由记录组成
• 记录 (Record):结点,进行排序的基本单位
表中的元素被称为记录
• 关键码 (Key):唯一确定记录的一个或多个域
• 排序码 (Sort Key):作为排序运算依据的一个或多个域
注意关键码和排序码的区别,关键码是用作唯一表示,排序码是用来进行排序。
• 排序
• 将序列中的记录按照排序码顺序排列起来
• 排序码域的值具有不减(或不增)的顺序
• 内排序
• 整个排序过程在内存中完成
因为是线性表,因此可以看成在数组里面来进行排序的。输入和输出都是放到了数组里面。

• 给定一个序列 R = { r1, r2, …,rn}
• 其排序码分别为 k = { k1, k2, …,kn}
• 排序的目的:将记录按排序码重排
• 形成新的有序序列 R’= { r’1, r’2, …,r’n}
• 相应排序码为 k’= { k’1, k’2, …,k’n}
• 排序码的顺序
• 其中 k’1 ≤ k’2 ≤ … ≤ k’n,称为不减序
• 或 k’1 ≥ k’2 ≥ … ≥ k’n ,称为不增序

排序稳定性
• 存在多个具有相同排序码的记录
• 排序后这些记录的相对次序保持不变
• 例如,
• 34 12 34’ 08 96
• 08 12 34 34’ 96
• 稳定性的证明——形式化证明
稳定性的情况需要严格的证明,不稳定的情况需要举出反例来证明。

• 时间代价:记录的比较和移动次数
• 空间代价 利用的辅助空间,包含临时变量&序列存储
• 算法本身的繁杂程度 算法的本身复杂程度和可实现性

排序算法的稳定性的意义?以及排序的正序和逆序的意义。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值