- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
选择算法举例[动态演示]
选第k小元素 选第k小元素 问题描述: 在n个元素的无序数组中选择第k(1=k=n)小元素。 当k=1时,相当于找最小值。 当k=n时,相当于找最大值。 当k=n/2时,称中值。 基于划分的选择算法 A[1…28]={8,33,17,51,57,49,35,11,25,37,14,3,2,13,52,12,6,29,32,54,5,16,22,23,7,61,36,9},求A中值元素,即第14小元素。(k=14) 基于划分的选择算法 线性时间选择算法 算法: 元素的个数大于阈值(可取为6)时往下,否则直接计算; 把元素按5个一组,分为 组; 选第k小元素 例:取阈值为6,设数组A有28个元素如下,A[1…28]={8,33,17,51,57,49,35,11,25,37,14,3,2,13,52,12,6,29,32,54,5,16,22,23,7,61,36,9},求A中值元素,即第14小元素。(k=14) ∵286,∴不能直接找,进入(2); (2)按5个一组分组: (8,33,17,51,57);(49,35,11,25,37);(14,3,2,13,52);(12,6,29,32,54);(5,16,22,23,7)。 选第k小元素 (2)按5个一组分组: (8,33,17,51,57);(49,35,11,25,37);(14,3,2,13,52);(12,6,29,32,54);(5,16,22,23,7)。 (3)每组按升序排序: (8,17,33,51,57);(11,25,35,37,49);(2,3,13,14,52);(6,12,29,32,54);(5,7,16,22,23)。 (4)中值的集合M={33,35,13,29,16}。 (5)递归找到中值的中值m=29。 选第k小元素 (5)递归找到中值的中值m=29。 (6)把A分为三组: A1= {8,17,11,25,14,3,2,13,12,6,5,16,22,23,7,9}; A2={29}; A3={33,51,57,49,35,37,52,32,54,61,36}。 因为k=14|A1|=16,丢掉A2和A3,而第14小元素必然在A1中。 (7)对集合A=A1重复上述过程。 选第k小元素 (8)对集合A=A1按5个一组分组: (8,17,11,25,14);(3,2,13,12,6);(5,16,22,23,7)。 (9)每组排序: (8,11,14,17,25);(2,3,6,12,13);(5,7,16,22,23)。 (10)找到新的中值集合M={14,6,16}。 (11)中值的中值m=14。 (12)把A分为三组:A1={8,11,3,2,13,12,6,5,7,9}; A2={14};A3={17,25,16,22,23} 因为k=14|A1|+|A2|=11,丢掉A1和A2,而第14小元素必然在A3中。 选第k小元素 (13)设A=A3={17,25,16,22,23} 然后在A3中找第k(=14-11=3)小元素。 (14) A3={17,25,16,22,23},由于|A3|6,所以直接找到第3小元素为22。 因此,原问题的中值是22。 解毕。 * {8,33,17,51,57,49,35,11,25,37,14,3,2,13,52,12,6,29,32,54,5,16,22,23,7,61,36,9} {3,7,5,6,2,8,11,25,37,14,35,49,13,52,12,57,29,32,54,51,16,22,23,17,61,36,33,9} jk,在右边区间找第k(=14-6=8)小元素 {9,11,37,14,35,49,13,52,12,57,29,32,54,51,16,22,23,17,61,36,33,25} jk,在右边区间找第k(=8-2=6)小元素 j=6 j=2 {11,25,37,14,35,49,13,52,12,57,29,32,54,51,16,22,23,17,61,36,33,9} {22,14,35,25,13,33,12,36,29,32,17,23,16} j=6 j=k,找到原问题第14小元素,结束。 {12,14,16,17,13,22,33,36,29,32,25,23,35} {22,14,35,25,13,33,12,36,29,32,17,23,16,37,51,54,61,57,52,49} {37,14,35,49,13,52,12,57,29,32,54,51,16,22,23,17,61,36,33,25} jk,在左边区间找第k(=6)小元素 j=14 若不是5的倍数,剩下元素不做处理,不影响算法性能; 将每组排序,其第3个元素恰好是中值;
您可能关注的文档
最近下载
- 《电气工程及其自动化专业导论》课程教学大纲.docx VIP
- 一种能模拟任意非线性激活函数的量子系统.pdf VIP
- 小学数学与信息技术教育的跨学科课程融合策略研究教学研究课题报告.docx
- 卡特彼勒3512C发动机零件图册 英文版.pdf VIP
- 临床复用医疗器械集中管理率、职业爆发率、包装合格率等消毒供应中心质控指标体系指标要点.doc VIP
- 地质灾害应急演练脚本.pdf VIP
- 【开学第一课】高三开学第一课(生物)(共28张PPT).pptx VIP
- 提钒炼钢厂点检维护作业区专职点检绩效考核实施细则.doc VIP
- 加油站管理者的领导与团队建设.pptx VIP
- 劳动防护用品基础知识.ppt VIP
文档评论(0)