- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第12章节 分治跟平衡
第12章 分治与平衡 12.1 分治算法 12.2 合并排序 12.3 快速排序 12.4 整数乘法和矩阵乘法 12.5 马的周游路线问题 小结 2. 分治法的适用条件 采用分治法解决的问题一般具有的特征如下: (1)问题的规模缩小到一定的规模就可以较容易地解决。 (2)问题可以分解为若干个规模较小的模式相同的子问题,即该问题具有最优子结 构性质。 (3)合并问题分解出的子问题的解可以得到问题的解。 (4)问题所分解出的各个子问题之间是独立的,即子问题之间不存在公共的子问 题。 3. 分治法的基本步骤 应用分治法一般有三个步骤: (1)分解:将原问题分解为若干个规模较小的子问题,这些子问题与原问 题形式相同,且相互独立。 (2)解决:若子问题易于求解则求出子问题的解,否则递归地解各个子问 题。 (3)合并:合并子问题的解求出原问题的解。 4. 分治法的复杂性分析 如果分治法Divide-and-Conquer(P)解规模为|P|=n,那么用t(n)表示该 问题P所需的计算时间,则: 用在算法复杂性中递归方程解的渐进阶的解法所介绍的迭代法来求解递 归方程,可以求得(12-1)的解: 另一个需要提到的问题是,在分析分治法的计算效率时,通常得到的 是递归不等式: 12.2 合并排序 应用分治法的排序算法通常用以下的步骤来进行:若 num 为1,算法终止;否则,将这一元素集合分解成两个或更 多个子集合,对每一个子集合分别排序,然后将排好序的子集 合并为一个集合 如果用元素的比较次数来计算它的时间复杂性,将满足递归式: 上式的解是t(n)= (num-1),它是O(num)阶的 分治-合并排序法算法如下所示: void Merge(SeqList R,int low,int m,int high) { //将两个有序的子文件R[low..m)和R[m+1..high]归并成一个有序的 //子文件R[low..high] int i=low,j=m+1,p=0; //置初始值 RecType *R1; //R1是局部向量,若p定义为此类型指针速度更快 R1=(ReeType *)malloc((high-low+1)*sizeof(RecType)); if(! R1) //申请空间失败7 Error(Insufficient memory available!); while(i=mj=high) //两子文件非空时取其小者输出到R1[p]上 R1[p++]=(R[i].key=R[j].key)?R[i++];R[j++]; while(i=m) //若第1个子文件非空,则复制剩余记录到R1中 R1[p++]=R[i++]; while(j=high) //若第2个子文件非空,则复制剩余记录到R1中 R1[p++]=R[j++]; for(p=0,i=low;i=high;p++,i++) R[i]=R1[p]; //归并完成后将结果复制回R[low..high] } //Merge void MergePass(SeqList R,int length) { //对R[1..n]做一趟归并排序 int I; for(i=1;i+2*length-1=n;i=i+2*length) Merge(R,I,i+length-1,i+2*length-1); //归并长度为length的两个相邻子文件 if(i+length-1n) //尚有两个子文件,其中后一个长度小于length Merge(R,I,i+length-1,n); //归并最后两个子文件 //注意:若i≤n且i+length-1≥n时,则剩余一个子文件轮空,无须归并
您可能关注的文档
- 地球的形状跟内部结构.ppt
- 地形图的判读课件课本.ppt
- 地形图的判读课件课本1.ppt
- 第01章节 财政概述概要.ppt
- 第1章节 语言的社会功能 题.doc
- 第1章节 财政学对象跟财政职能(陈共第九版).pptx
- 第2课时 二次函数的图象跟字母系数的关系.ppt
- 第2课时 加强宪法监督 课件课本.ppt
- 第2课时 我有隐私权 课件课本.ppt
- 第2课时 预防犯罪 课件课本.ppt
- 国际标准 IEC 61169-47:2015 EN Radio-frequency connectors - Part 47: Sectional specification for radio-frequency coaxial connectors with clamp coupling, typically for use in 75 Ω cable networks (type F-Quick) 无线电频率连接器 - 第47部分:用于无线电频率同轴连接器的部分规范,.pdf
- 国际标准 IEC 61158-5-17:2007 EN 工业通信网络 - 现场总线规范 - 第5-17部分:应用层服务定义 - 类型17元素 Industrial communication networks - Fieldbus specifications - Part 5-17: Application layer service definition - Type 17 elements.pdf
- 国际标准 IEC 61158-5-17:2007 EN Industrial communication networks - Fieldbus specifications - Part 5-17: Application layer service definition - Type 17 elements 工业通信网络 - 现场总线规范 - 第5-17部分:应用层服务定义 - 类型17元素.pdf
- 国际标准 IEC 60939-2-2:2004 EN_D 完整抑制无线电干扰滤波器单元-第2-2部分:空白详细规范-用于抑制电磁干扰的被动滤波器单元-仅需进行安全测试的滤波器(安全测试) Complete filter units for radio interference suppression - Part 2-2: Blank detail specification - Passive filter uits for electromagnetic interference .pdf
- 国际标准 IEC 60939-2-2:2004 EN_D Complete filter units for radio interference suppression - Part 2-2: Blank detail specification - Passive filter uits for electromagnetic interference suppression - Filters for which safety tests are required (safety.pdf
- 国际标准 IEC 60670-23:2006 EN-FR Boxes and enclosures for electrical accessories for household and similar fixed electrical installations - Part 23: Particular requirements for floor boxes and enclosures 家用和类似固定电气安装用电器配件的盒子与封闭装置——第23部分:地板箱和封闭装置的要求.pdf
- 国际标准 IEC 60670-23:2006 EN-FR 家用和类似固定电气安装用电器配件的盒子与封闭装置——第23部分:地板箱和封闭装置的要求 Boxes and enclosures for electrical accessories for household and similar fixed electrical installations - Part 23: Particular requirements for floor boxes and enclosures.pdf
- 2024版完整的货物运输合同书.doc
- 2024版无财产的离婚协议书书模板.doc
- 2024版委托融资租赁合同书书.doc
文档评论(0)