- 2
- 0
- 约2.39千字
- 约 12页
- 2018-01-05 发布于河南
- 举报
算法设计与分析第5讲 寻找第K元
寻找第K元 问题描述 给定一个数组A[n], 寻找大小排在第k的元素。 自然的想法: 对A排序, return A[k]; 时间复杂性 O(nlogn) 能不能更低? 随机分治方法 RS(A, p, q, i) if p=q return A[p]; r=Rand_Partion(A,p,q) /*随机主元r,划分A为两部分,A[p…r-1]A[r]A[r+1…q];*/ k=r-p+1; if i=k then return A[r]; if ik then return RS(A,p,r-1,i); else return RS(A,r+1,q,i-k); 复杂性分析 最差情况: T(n)=T(n-1)+ θ(n) =θ (n2) 分割比较好情况 T(n)=T(n/2)+ θ(n) = θ(n) 最差情况下线性时间算法 Select (i, n) //找到好的划分主元 1 将数组划分为5个一组,共[n/5]组,查找每一组的中间值,t= θ(1)*[n/5]= θ(n) 2 将这[n/5]个中间值视为一个数组,找到其中间元x。t=T(n/5) 3 以x为主元划分,令k=rank(x); if i=k then return x; if ik then select(i,
您可能关注的文档
- VB程序设计入门练习及答案.doc
- UCOSii 中18b20代码及其CRC程序.docx
- ds18b20 C程序proteus仿真.doc
- vb编程100题.doc
- 清华大学C语言程序设计考试试卷B.doc
- 计算方法的MATLAB实现.doc
- 第7章 指针课前预习题(第一讲 7.1~7.2).doc
- C++ C试题(见《高质量程序设计指南》附录B).doc
- C试题2007上半年-1(标准B).doc
- VB课本习题答案第五章.docx
- 科技行情结束了吗?.docx
- 工控&电网25Q4&26Q1总结:工控进一步复苏,电网景气度保持.docx
- 寻找中国保险的Alpha系列之五:保险还要买多少红利?.docx
- 消费级AR眼镜系列报告(三):AR眼镜核心技术:光波导演进、材料革新与微显示升级.docx
- 北交所策略专题报告:掘金精细化育儿新需求:北交所母婴产业链的辅食、卫生用品与营养品机遇.docx
- 超高性能混凝土(UHPC)材料:在建筑幕墙中的应用.docx
- 环保行业周报:SAF价格创新高,UCO价格有望补涨.docx
- 国防军工行业投资策略:军贸与商业航天共振,静待新质战斗力订单催化.docx
- 计算机行业“一周解码”:豆包开启付费订阅测试,Anthropic发力C端,大模型商业化加速中.docx
- 传媒行业5月投资策略:关注AI应用叙事逻辑改善可能,把握游戏与IP潮玩底部机会.docx
原创力文档

文档评论(0)