




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南省长沙市长郡中学胡伟栋 减少冗余与算法优化 减少冗余与算法优化 要提高算法的效率 必须减少算法中的冗余 算法的目标 用最少的时间解决问题 最高的效率 冗余 多余的或重复的操作 高效率 在搜索 递推 动态规划 中 都可能出现冗余 例1 整数拆分 问题描述 将整数N拆分成若干个整数的和 要求所拆分成的数必须是2的非负整数幂的形式 问有多少种拆分方案 如果两个方案仅有数的顺序不同 则它们算作同一种方案 当N 5时 可以拆分成下面的形式 5 1 1 1 1 15 1 1 1 25 1 2 25 1 45有4种拆分方案 例1 整数拆分 样例 例1 整数拆分 递推的建立 用F i j 表示i拆分成若干个数 其中最大的数不超过2j的拆分方案数 递推方程 递推的表示 目标 最大数是 最大数小于 初始值 例1 整数拆分 递推复杂度 复杂度 时间复杂度 O Nlog2N 空间复杂度 O Nlog2N 1 i N1 j M 3 N 8 BF i j 1 AF i j 例1 整数拆分 当N 2M M是非负整数 时 实际要计算的点数 1 2 22 23 24 2M 1 2M 1 N 1 F i j i j 递推中的冗余 1 20 2 21 4 22 C 当j M k时 第j行要计算的点数为2k 例1 整数拆分 减少冗余 当N 2M M是非负整数 时 当i x时 第i列要计算的点数与x的二进制表示中最末的0的个数相等 12 102 112 1002 1012 1102 1112 10002 时间复杂度 O N 每列要计算的点是最下方连续的若干个点 需要计算的点 已知点 不必求出的点 例1 整数拆分 减少冗余 当N 2M M是非负整数 时 在所有F x j j一定 x为变量 中 只要存储x最大的一个即可 空间复杂度 O log2N 例1 整数拆分 减少冗余 当N 2M时 可转化成N 2M的形式求解 例1 整数拆分 减少冗余 设N 2M r 2M 1 N 2M 0 0 0 0 0 0 0 r 目标 F N M 1 F N M 例1 整数拆分 小结 冗余 时空复杂度较高 去除冗余后 时空复杂度相对很低 去除冗余 优化本题的关键 例1 整数拆分 最后的思考 更优秀的算法 Exploring 公式 例2 最大奖品价值 问题描述 有N 2级楼梯 分别用0至N 1编号 第1至N级楼梯上每级都放有一个奖品 每个奖品都有一个正的价值 如果某人从第0级开始 向上走M步正好到达第N 1级楼梯 他将得到所走过的楼梯上的所有奖品 否则他将一无所获 问能得到的奖品价值的和最大是多少 当然 一步不可能走太多级楼梯 假设每步最多上K级 即最多从第i级走到第i K级 例2 最大奖品价值 数学模型 有一列数a0 a1 a2 aN aN 1其中a0 0a1 a2 a3 aN 0aN 1 0从中选M 1个数 使1 0 i0 i1 i2 iM N 1 2 i1 i0 i2 i1 i3 i2 iM iM 1 K3 最大 例2 最大奖品价值 动态规划 状态表示 用F i j 表示走i步到达第j级楼梯能得到的奖品的价值和的最大值 F i j max F i 1 x aj j k x j 时间复杂度 O NMK 例2 最大奖品价值 规划中的冗余 从F i 1 到F i 的转移 f1 j 表示F i 1 j f2 j 表示F i j f1 j k 1 f1 j k f1 j k 1 f1 j 3 f1 j 2 f1 j 1 f2 j 1 f2 j max max 例2 最大奖品价值 减少冗余 动态的考虑 每次要求的f1的一段都是变化的 每次会加入一个新元素 每次会删除一个元素 堆 静态的考虑 每次都是找f1中连续的一段 线段树 log2K log2K NM NM 编程复杂度 O O 高 例2 最大奖品价值 减少冗余 f1 j k f1 j k 1 f1 a f1 b f1 j 1 f1 j a b j f1 a f1 b 对于任意af1 b 时 f1 a 才有用 f2 j f1 a1 f1 a2 f1 a3 f1 ar max j k a1 a2 a3 ar j 例2 最大奖品价值 减少冗余 数据结构 删除第一个元素 新增元素到最后一个位置 并维护这个数据结构使它保持递减的性质 线性表 队列 堆栈 f1 a1 f1 a2 f1 a3 f1 a4 f1 a5 f1 a6 f1 a7 f1 a8 x x 例2 最大奖品价值 时间复杂度 O NM 时间复杂度 例2 最大奖品价值 小结 O NMK O NMlog2K O NMlog2K O NM 堆 线段树 去除冗余 线性表 例2 最大奖品价值 小结 去除冗余 数据结构 探索 分析 降低复杂度 选取一个最合适的数据结构 总结 在算法设计和编程过程中 冗余的出现是难以避免的冗余是高效率的天敌 减少冗余 必然会使算法和程序效率提高很多去除
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八大浪费考试试题及答案
- 组织行为与变革管理案例分析试题及答案
- 2025年绿色建材研发中心项目绿色建材市场前景与投资建议报告
- 2025年环保行业环保设备与材料创新应用报告
- 2025年社区心理健康服务社区心理健康服务社区发展模式报告
- 2025至2030年中国3D网上购物行业市场全景调研及投资规划建议报告
- 解析卷-北师大版8年级数学上册期末试卷及答案详解(各地真题)
- 基础强化人教版8年级数学下册《平行四边形》定向攻克试题(含解析)
- 2025财税管理咨询合同范本大全专业服务保障
- 2025版幼儿园外籍教师聘用及教育服务合同
- 2025至2030中国汽车空调压缩机行业产业运行态势及投资规划深度研究报告
- 2025年人工流产并发症及其护理试题
- 2025至2030年中国自动化生产线行业市场运行态势及未来发展潜力报告
- 2026版步步高大一轮高考数学复习110练第四章 §4.4 简单的三角恒等变换含答案
- 培训学校上墙管理制度
- 评估业务咨询顾问协议4篇
- 医学影像技术发展介绍
- 2025年中国化学纤维市场现状分析及前景预测报告
- DB65╱T 3953-2016 反恐怖防范设置规范 商业场所
- 《医学文献检索技巧》课件
- B型脑钠肽BNP课件
评论
0/150
提交评论