当前课程知识点:数据结构(下) > 第十二章 排序 > (a4)快速排序:变种 > 12a4-5: 时间 + 空间 + 稳定性
纵观整个算法的计算过程
我们为每一个元素
只需花费常数的时间
因此这个新的partition算法
总体依然只需线性的时间
当然这里也只需要常数的辅助空间
因此它依然是一个就地的算法
那么这个算法的稳定性呢
在这里实例中我们可以看到
无论是5a和5b
还是8a和8b
重复元素之间的相对次序
似乎是可以保持的
然而我们说这只是一个假象
对于子序列L中的重复元素而言
它们之间的相对位置的确是可以保持
因为根据这个算法的原理
所有此类的重复元素
都是严格的按照
它们此前的相对次序
加入到子序列L当中的
那至此你可能会说
根据算法的原理
子序列G中的所有重复元素
也是按照它们原有的次序
加入到这个序列当中的
所以它们之间的相对次序
也应该得以保持才是
然而这一判断并不全面
这里需要注意的是与子序列L不同
子序列G有可能会向后滚动
是的
尽管这种滚动的方式
可以保证时间效率的最优
然而由此却有可能导致不稳定性
我们就以这里的重复元素8a和8b为例
它们在最初进入到子序列G之后
的确保持了原始的相对次序
然而在经过了一次滚动之后
二者的次序依然颠倒了过来
而在经过了此后的另一次滚动之后
它们的次序又再颠倒了一次
从而造成了能够保持原状的假象
当然子序列L中的
重复元素之间的相对位置
也并非系绝对一成不变的
你能举出这样的一个实例吗
-选课之前
--写在选课之前
--宣传片
-考核方式
--考核方式
-OJ系统说明
--关于OJ
--1-注册与登录
--2-界面与选课
--3-提交测试
-关于课程教材与讲义
--课程教材与讲义
-关于讨论区
--关于讨论区
-微信平台
--html
-PA晋级申请
--PA晋级
-(a)概述
--07A-1 纵览
--07A-5 接口
-(a)概述--作业
-(b1)BST:查找
-第七章 二叉搜索树--(b1)BST:查找
-(b2)BST:插入
-(b2)BST:插入--作业
-(b3)BST:删除
-第七章 二叉搜索树--(b3)BST:删除
-(c)平衡与等价
-(c)平衡与等价--作业
-(d1)AVL树:重平衡
-第七章 二叉搜索树--(d1)AVL树:重平衡
-(d2)AVL树:插入
-(d2)AVL树:插入--作业
-(d3)AVL树:删除
-(d3)AVL树:删除--作业
-(d4)AVL树:(3+4)-重构
-(d4)AVL树:(3+4)-重构--作业
-本章测验
--章节测验
-(a1)伸展树:逐层伸展
--习题
-(a2)伸展树:双层伸展
--习题
-(a3)伸展树:算法实现
--习题
-(b1)B-树:动机
--习题
-(b2)B-树:结构
--习题
-(b3)B-树:查找
--习题
-(b4)B-树: 插入
--习题
-(b5)B-树: 删除
--习题
-(xa1)红黑树:动机
--习题
-(xa2)红黑树:结构
--习题
-(xa3)红黑树:插入
--习题
-(xa4)红黑树:删除
-本章测验
--习题
-(b)散列:原理
--09B-3 数组
--09B-4 原理
--09B-5 散列
--09B-6 冲突
--习题
-(c)散列:散列函数
--习题
-(d1)散列:排解冲突(1)
--习题
-(d2)散列:排解冲突(2)
--习题
-(e)桶/计数排序
--习题
-本章测验
--本章测试
-(a1)需求与动机
--习题
-(a2)基本实现
--习题
-(b1)完全二叉堆:结构
--习题
-(b2)完全二叉堆:插入与上滤
--习题
-(b3)完全二叉堆:删除与下滤
--习题
-(b4)完全二叉堆:批量建堆
--习题
-(c)堆排序
--习题
-(xa1)左式堆:结构
--习题
-(xa2)左式堆:合并
--习题
-(xa3)左式堆:插入与删除
-本章测验
--本章测试
-(a)ADT
--习题
-(b1)串匹配
--习题
-(b2)蛮力匹配
--习题
-(c1)KMP算法:从记忆力到预知力
--习题
-(c2)KMP算法:查询表
--习题
-(c3)KMP算法:理解next[]表
--习题
-(c4)KMP算法:构造next[]表
--习题
-(c5)KMP算法:分摊分析
--习题
-(c6)KMP算法:再改进
-(d1)BM_BC算法:以终为始
-(d2)BM_BC算法:坏字符
-(d3)BM_BC算法:构造bc[]
-(d4)BM_BC算法:性能分析
-(e1)BM_GS算法:好后缀
-(e2)BM_GS算法:构造gs表
-(e3)BM_GS算法:综合性能
-(f1)Karp-Rabin算法:串即是数
-(f2)Karp-Rabin算法:散列
-本章测验
--本章测试
-(a1)快速排序:算法A
-- 12a1-5: 实例
--习题
-(a2)快速排序:性能分析
--习题
-(a4)快速排序:变种
-(b1)选取:众数
-(b3)选取:通用算法
--习题
-(c1) 希尔排序:Shell序列
--习题
-(c2)希尔排序:逆序对
-本章测验
--本章测试