当前课程知识点:数据结构(下) > 第十二章 排序 > (b3)选取:通用算法 > 12b3-5 : linearSelect:性能分析B
那么新问题的规模
为何必然会得到有效的削减呢
回顾一下你应该记得
新问题都是在原问题的基础上
削减掉子序列e加g或e加l而得的
而l和g都是以全局的中位数
也就是那个大写的M来确定的
实际上这个大M虽然未必就是
整个集合的中位数
但就某种意义而言
它的确不会过小或者反过来过大
具体来说在整个集合中
必然有不少于25%的元素
不小于这个大M
而且另外还有25%的元素
在数值上不大于这个大M
这一性质通过这幅图
可以很清楚的看出来
在这里我们将所有的n除以q个子序列
垂直摆放并平行的罗列于此
以他们各自的中位数为界
每个子序列都可以相应的分为
更大的一半 以及更小的一半
每个子序列都是如此
如果将所有子序列中的
中位数由大到小排列于此
那么它们当中的那个中位数
也就是大M大致应该在这个位置
现在可以看到以这个大M为界
整个序列的确可以分为三个部分
首先是这些白色的部分
不难看出它们在数值上
都不会小于大M
而且从数量上讲这些白色部分
至少占据整体的四分之一
对称的你也可以注意到
这些深色的部分 它们的总和
也至少占整个集合的四分之一
而且其中的元素在数值上
也绝对不会超过大M
进一步的不难看出
所有这些白色部分
都应该属于此时的子集g或e
反之对称的所有的深色部分
也都应该属于此时的子集l或e
这样我们就证明了
我们此前的那个断言
也就是无论我们每次剪除的
是l加1或g加1
新问题的规模都不会超过
此前问题规模的75%
-选课之前
--写在选课之前
--宣传片
-考核方式
--考核方式
-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)希尔排序:逆序对
-本章测验
--本章测试