




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2020/7/15,0,陈卫东 华南师范大学计算机科学系,Algorithms :Design Techniques and Analysis 算法设计技巧与分析,2020/7/15,1,Chapter 5 Induction,Introduction Radix Sort Integer Exponentiation Evaluating Polynomials Generating Permutations Finding the Majority Element,2020/7/15,2,Introduction,递归算法的基本模式(求解问题) 递归算法的 优点 例1 选择排序 例2 直接
2、插入排序,2020/7/15,3,递归算法的基本模式(求解问题),1. n=1, f(1) (直接求解); 2. 若f(k)(kn)可求,则 利用f(1)、f(n-1)得f(n)。 注:一般来说,求f(k)(kn)比求f(n)容易。若有办法由f(1)、f(n-1)得到f(n)即可。 归纳原理,2020/7/15,4,递归算法的基本模式(求解问题),递归算法的框架: f(n) n=1, f(1) (直接求解); n1, 利用f(1)、f(n-1)求得f(n); 注:关键步骤是由f(1)、f(n-1)得到f(n)。 其正确性可使用归纳法来证明。,2020/7/15,5,递归算法的特点,递归算法的优
3、点: 1. 读写简明; 2. 算法的正确性易于用数学归纳法来证; 3. 算法的复杂性往往可利用递归关系来分析 缺点: 1. 算法的执行流程不易理解; 2. 递归调用往往需要额外的时空开销,2020/7/15,6,例1 选择排序,算法的基本框架: Ain排序 若ni, 将Ain中最小元素找出,并换至Ai处; Ai+1n排序; 算法递归调用图 算法的时空复杂性分析,2020/7/15,7,例2 直接插入排序,算法的基本框架: A1i排序 若i1, A1i-1排序; 将Ai插入到A1i-1中的适当位置处; 算法递归调用图 算法的时空复杂性分析,2020/7/15,8,Radix Sort(基数排序)
4、,问题: 要求对 n个数的序列L=a1, a2 , , an进行排序,其中每个数恰好由k位数字组成,每位数字均取自0,1,9。 算法思想:对于k使用归纳法。 例子 Algorithm 5.3 RADIXSORT 算法的时空复杂性分析 时间复杂度: (kn) 空间复杂度: (n),2020/7/15,9,Integer Exponentiation(求整数次幂),问题: 求实数x的n次幂,即xn ,其中n为一个非负整数。 算法思想 计算xn 计算xm ; / m=n/2 若n是偶数,则xn =(xm)2, 若n是奇数,则xn =x(xm)2 Algorithm 5.4 EXPREC Algori
5、thm 5.5 EXP 算法的时空复杂度: (log n),2020/7/15,10,Evaluating Polynomials(多项式求值),问题: 求下列实系数多项式的值: Pn(x)=anxn+ an-1xn-1 + + a1x + a0 算法思想(Horners rule) Pn(x)= xPn-1(x) + a0 Algorithm 5.6 HORNER 算法的时空复杂性分析 时间复杂度: (n),2020/7/15,11,Generating Permutations(生成排列),问题: 要求产生1,2,n的所有排列。 算法1 算法思想 12,3,n的排列, 21,3,n的排列,
6、 n1,2,n-1的排列。 Algorithm 5.7 PERMUTATIONS1 算法时间复杂度: (nn!),2020/7/15,12,Generating Permutations(生成排列),算法2 算法思想 n n , n。 Algorithm 5.8 PERMUTATIONS2 算法时间复杂度: (nn!),2020/7/15,13,Finding the Majority Element(找主元素),问题 序列A1.n中是存在主元素?若有请找出来。 注:A中主元素是指在A中出现次数多于n/2次的元素。 算法1:穷举法(the brute-force method) 时间复杂度:
7、(n2) 算法2:排序法 时间复杂度: (n log n) 算法3:找中元素法(finding the median) 时间复杂度: (n),2020/7/15,14,Finding the Majority Element(找主元素),算法4: 算法思想 Observation 5.1 If two different elements in the original sequence are removed, then the majority in the original sequence remains the majority in the new sequence. Algorithm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版矿产资源开采合同履约保证金协议
- 二零二五年度宾馆特色客房装饰设计采购合同范本
- 2025版场地使用权合作协议规范模板
- 2025年玻璃制品安装与环保性能评估承包合同
- 2025版金融衍生品销售合同范本三(附风险评估)
- 二零二五年度建筑安全及文明施工现场管理合同
- 2025版测绘仪器设备销售及市场分析合同
- 二零二五年度cfg桩基础施工项目变更与索赔合同
- 二零二五年度旅游并购居间服务合同范本
- 2025版SaaS企业协同办公解决方案服务合同
- 电子教程pdms中文培训手册详细
- 绿皮书拉片电影节拍表(借鉴材料)
- 专业技术职务聘任表(2017年版)
- GB/T 602-2002化学试剂杂质测定用标准溶液的制备
- GB/T 12706.1-2020额定电压1 kV(Um=1.2 kV)到35 kV(Um=40.5 kV)挤包绝缘电力电缆及附件第1部分:额定电压1 kV(Um=1.2 kV)和3 kV(Um=3.6 kV)电缆
- 新版有创血压监测ABP培训课件
- 重症医学科常用知情告知书
- 防溺水、防性侵、防欺凌安全教育家长会
- DB11-T1322-14-2017安全生产等级评定技术规范第14部分:汽车制造企业
- 养老机构安全检查表
- 企业员工上下班交通安全培训(简详共2份)
评论
0/150
提交评论