版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. 问题描述 在n个元素的表a1:n中确定第k小元素,1kn。2. 设计思路 利用Partition过程。在第一次划分后划分元素v测定在aj的位置上,则有j-1个元素小于或等于aj,且有n-j个元素大于或等于aj。此时, 若k=j,则aj即是第k小元素;否则, 若kj,则a1:n中的第k小元素将出现在aj+1:n, 是aj+1:n中的第k-j小元素。选择问题选择问题利用利用Partition实现的选择算法实现的选择算法public static void Select(int n,int k) /在数组a1,an中找第k小元素s并把它放在位置k,假设1kn。 /将剩下的元素按如下方式排列,使
2、ak=t,对于1mk,有amt;对于kmn,有amt。an+1=+ int m,r,j; m=1;r=n+1;an+1=10000; while(true) /每当进入这一循环时,1mkrn+1 j=r; /将剩余元素的最大下标加1后给j j=Partition(m,j); /返回j,它使得aj是第j小的值 if(kj) r=j; /j是新的上界 else if(k=j) return; else m=j+1; /j+1是新的下界 利用利用Partition实现的选择算法实现的选择算法实例分析实例分析算法算法复杂度复杂度分析分析假设假设 a中的元素互异; 随机选取划分元素,且选择am:p-1中
3、任一元素作为划分元素的概率相同。分析分析n 在Select中每次调用Partition(m,j),所需的元素比较次是 j-m+1。n 在执行一次Partition后,或者找到第k小元素,或者将在缩小的子集(am,k-1或ak+1,j)中继续查找。缩小的子集的元素数将至少比上一次划分的元素数少1。最坏情况最坏情况时间时间 Select的最坏情况时间是的最坏情况时间是O( ) Select的平均情况时间是的平均情况时间是O(n) 最坏情况下的特例:最坏情况下的特例: 输入a恰好使对Partition的第i次调用选用的划分 元素是第i小元素,而k=n。 此时,(区间下界)m随着Partition的每
4、一次调用而仅增加1,j保持不变。 Partition最终需要调用n次。则n次调用的时间总量是:)() ) 1(21nin2n最坏情况时间是最坏情况时间是O(n)的选择算法的选择算法基本思想:精心挑选划分元素v方法:二次取中间值目的:使v比一部分元素小比另一部分元素大使用二次取中规则的选择算法的说明性描述使用二次取中规则的选择算法的说明性描述public static int Select2(int a,int k,int n) /在集合a中找第k小元素 若nr,则采用插入法直接对a分类并返回第k小元素。 把a分成大小为r的个子集合,忽略剩余的元素。 设 是上面 个子集合的中间值的集合。 用Pa
5、rtition划分a,v作为划分元素。 假设v在位置j。 case k=j: return(v); kj: 设S是a1:j-1中元素的集合 return(Select2(S,k,j-1) else:设R是aj+1:n中元素的集合 return(Select2(R,k-j,n-j)rnmmmM/21,rn/2(,/2 ,/)vSelectMn rn rSelect2的的待解决问题待解决问题算法中需要解决的两个问题 1) 如何确定子集合的中间值 当r较小时,采用InsertionSort(a,i,j)直接对每组的r个元素分类,在分类好的序列中,中间元素即为当前r个元素中的中间位置下标对应的元素。
6、2) 如何保存 个子集合的中间值 注:各组找到的中间元素值将调整到数组a的前部,连续保存,从而可用递归调用的方式对这些中间值进行排序并找出中间值的中间值。rn/Select2的实现的实现public static int Sel(int m,int p,int k)/返回一个i,使得i属于m,p,且ai是am:p中第k小元素,r是一个全程变量,其取值为一个大于1的整数。 int i,j,n,temp; if(p-m+1=r) InsertionSort(m,p); return(m+k-1);/返回第k小元素的位置 while(true) n=p-m+1; /元素数 for(i=1;ik) p
7、=j-1; else k=k-(j-m+1); m=j+1; 斯特拉森矩阵乘法斯特拉森矩阵乘法设矩阵A和B是两个nn矩阵,讨论矩阵加法的时间复杂度和矩阵乘法的时间复杂度。矩阵加法:( )矩阵乘法:( )1( , )( , ) ( , )1,k nC i jA i k B k ji jn 分治法解决矩阵乘法(降低计算复杂度)分治法解决矩阵乘法(降低计算复杂度)2n3n观察:矩阵乘法的花费比矩阵加法大 。假设:假设:n=2k其中:111211121112212221222122AABBCCAABBCC1111111221121112122221211122212221122222CA BA BCA BA BCA BA BCA BA B技巧:增加加法减少乘法斯特拉森矩阵乘法斯特拉森矩阵乘法令:令:则:则:112211222122111112222221111112222111111212222122()()()()()()()()()()PAABBQAABRABBSABBTAABUAABBVAABB11122122CPSTVCPTCQSCPRQU7个乘法和个乘法和10个加个加(减)法(减)法 8个加(减)法个加(减)法 斯特拉森斯特拉森矩阵乘法的思想矩阵乘法的思想斯特拉森时间复杂度斯特拉森时间复杂度22( )7 ( /2)2bnT nT nann2212logloglog4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外研八下英语Unit 4 Starting out-Understanding ideas《合作探究三》课件
- (新教材)2026人教版二年级下册数学 数学连环画 教学课件
- 2026年作曲授权合同(1篇)
- 2025 高中语文必修上册《荷塘月色》散文意境创造课件
- 统编版语文二年级下册第一单元 质量评价卷(含答案)
- 2026年山坪塘权属合同(1篇)
- 2026年南京物业前期合同(1篇)
- 航空产业基地项目可行性研究报告
- 煤炭销售电商平台建设项目可行性研究报告
- 信息技术教师资格证中信息技术技能教学的操作指导
- (高清版)DB36∕T 1324-2020 公路建设项目档案管理规范
- 2025年广西桂林市考试招聘部队随军家属33人高频重点提升(共500题)附带答案详解
- 导数中的同构问题【八大题型】解析版-2025年新高考数学一轮复习
- ANCA相关性小血管炎肾损伤病因介绍
- 旅游行业兼职业务员聘用合同
- (合同范本)中介佣金协议书
- 2024年法律职业资格考试(试卷一)客观题试卷与参考答案
- 厂家冰柜投放协议书模板
- 燃气涡轮发动机全册配套完整课件
- 2023年8月广西桂林市七星区专职化社区工作者招聘5人笔试历年典型考题及考点剖析附答案带详解
- TD/T 1061-2021 自然资源价格评估通则(正式版)
评论
0/150
提交评论