第6章 分治法 概述:算法概要、算法效率 折半查找 合并排序 快速排序 大整数乘法 Strassen 矩阵乘法 本章习题 概述 6.1 分治法基本思想(算法概要、算法效率) 分治法是著名的通用算法设计技术,很多非常有效的算法实际上是这个 通用算法的特殊实现。基本思想符合人们在解决复杂问题时,常常将其 从大到小逐步分解,进而将较易求解的小问题解合并得到原问题的解。 这即是“分治法”的分而治之的思想。 算法概要 1. 分解原问题规模为较小的子问题,子问题最好有相同规模; 2. 求解子问题;( 1 2 步“分解-求解”过程通常是递归的,直到子问题可简单求解为止) 3. 合并子问题的解,得到原问题的解(必要的话)。 分治算法概要描述 分治算法概要描述: 分治法应用的一个简例 6.2 分治算法设计的特点 分治法应用的一个简例:—— 查找最大元素 已知 S 有 n 个元素,求 S 的最大元素。不妨设 的整数。 本问题可设计多种算法,这里用分治法求解:每次将 S 一分为二,直到 分解到仅有2个元素的求解子集为止;求解算法是返回两元素之较大者。 分治法应用简例的过程图解 分治法应用简例的过程图解 已知: S = { 30, 11, 42, 22, 1, 55, 21, 43 } 有 n = 23 个元素; 求: S 的最大元素。 分治算法设计的两个基本特征 1、分治求解子集是规模相同,求解过程相同的实际问题的分解。即使用一个函数,求解不同的子集。 2、求解过程反复使用相同的求解子集函数来实现,一般用递归函数来实现算法。 分治法时间效率(例) 6.3 分治法的时间复杂度 上例的时间效率:—— 查找最大值 输入规模:元素个数 n ; 基本操作:比较操作; 效率类别:无最佳、最差、平均效率之分; 建立递归算法的递推式并求解得到增长函数的增长率类型: 本例求解子集仅2个元素,需比较一次。下面用归纳法分析: ① n=2=21:T(n) = T(2) = 1。——比较一次 ② n=4=22:T(n) = 2T(4/2)+1。2T(4/2):求解子集个数为2,求解子集 规模 4/2。+1:两个子集解需合并一次即比较一次。 ③ n=8=23: T(n) = 2T(8/2)+1 = 2T(4) + 1。 ④ n=2k: T(n) = 2T(2k/2)+1= 2T(2k-1) + 1。 本例归纳结果: 通用分治递推式及其效率 分治法运算时间的通用分治递推式: 一个规模 n 的问题,每次被分为 a 个子问题,每个子问题规模 n/b (上例:a = 2, b = 2)。为简化分析,假定 n 是 b 的乘方即 n = bk, k=1,2,3,..., 通用分治递推式如下: c:子集 (规模为 tr )求解时间 (常量);(时间:基本操作数) f (n):子集分解和子集解合并的时间。(本例比较1次即 f (n) = 1) 解递推式,得到时间效率(主定理): 折半查找 折半查找 算法策略:(非降序) 通过比较查找键 K 和有序数组中间元素 A[m] 来完成查找工作。若它们 相等,算法结束;否则,如果KA[m],则在数组前半部分内进行查找, 如果KA[m],就在数组的后半部分内进行查找。 算法描述 折半查找算法效率 折半查找的算法效率 输入规模:元素个数 n ; 基本操作:键值比较; 效率类别:显然键值比较次数与输入特征(元素的顺序)有关,因此 存在最佳、最差、平均效率。(最佳效率 Tbest(n)=1) 最差效率:(如数组中没有查找键,即失败查找) 对该问题,可直接写出键值比较次数(基本操作)递推式: 理解一: 原区间通过 1次 比较K=A[m],化为一半规模的 1个求解子问题。 理解二: 根据通用分治递推式得到,a = 1, b = 2, f (n) = 1 分解需1次比较。 问题:递推式为什么是向下取整?(A[0...n-1]) 求解递推式得:(过程略) 折半查找算法简评 折半查找算法简评 就键值比较的查找算法而言,折半查找是一种最优的查找算法; 但还有一些查找算法具有更优的平均效率(插值查找、散列查找), 散列查找甚至不需要输入是有序的!当然,这些算法除了键值比较, 还有一些特殊的附加计算。 折半查找所包含的思想不仅仅能用于查找,还可以用于一元高次方程 求解(如解超越方
您可能关注的文档
- 静女诗歌学习.ppt
- 静电的利用与防范.ppt
- 第二节 芳香烃.ppt
- 第十讲——工程问题.ppt
- 第十三章 个人所得税.ppt
- 恶性综合征相关.ppt
- 带约束的二次规划.ppt
- 竞聘词相关讲解.ppt
- 俄语入门讲稿.ppt
- 静脉输液感染控制.ppt
- (正式版)DB33∕T 2574-2023 《 数字乡村建设规范 》.pdf
- (正式版)DB33∕T 2554-2022 《“GM2D”进口商品数据元 》.pdf
- (正式版)DB33∕T 2573-2023 《 助残护理员照护服务规范 》.pdf
- (正式版)DB33∕T 2542-2022 《餐饮计量规范 》.pdf
- (正式版)DB33∕T 2558.1-2022 《林下套种菌药生产技术规程 第1部分:大球盖菇》.pdf
- (正式版)DB33∕T 2558.3-2022 《林下套种菌药生产技术规程 第3部分:羊肚菌 》.pdf
- (正式版)DB33∕T 2575-2023 《 野生猛禽和涉禽安全救护技术规程 》.pdf
- (正式版)DB33∕T 2544-2022 《森林人家建设规范》.pdf
- (正式版)DB33∕T 310010-2021 《沿海防护林生态效益监测与评估技术规程》.pdf
- (正式版)DB33∕T 3004.1-2015 《农村厕所建设和服务规范 第1部分:农村改厕管理规范 》.pdf
最近下载
- 贵州省事业单位考试真题《公共基础知识》及答案解析(已编辑,可直接打印.docx VIP
- 北师大版(2024)小学数学二年级上册《分物游戏》教案及反思.pdf VIP
- 贵州省事业单位考试真题《公共基础知识》及答案解析(已编辑,可直接打印.docx VIP
- 锂电池荷电、健康与功率状态联合在线估计算法的深度解析与创新实践.docx
- ISO 三体系内审检查表- 生产.docx VIP
- 《建筑与市政工程防水通用规范》GB55030-2022.pdf VIP
- 2025年江西司法警官职业学院单招笔试职业技能考核试题库含答案解析.docx VIP
- 山东省滨州阳信县联考2026届数学八上期末统考试题含解析.doc VIP
- 2025年江西司法警官职业学院单招笔试职业技能考核试题库含答案解析.docx VIP
- GB55030-2022《建筑与市政工程防水通用规范》主要内容.docx VIP
原创力文档

文档评论(0)