当前位置: 首页 > news >正文

【算法导论】贪心算法,递归算法,动态规划算法总结

 

一般实际生活中我们遇到的算法分为四类:

一>判定性问题

二>最优化问题

三>构造性问题

四>计算性问题

而今天所要总结的算法就是着重解决 最优化问题

《算法之道》对三种算法进行了归纳总结,如下表所示:

标准分治

动态规划

贪心算法

适用类型

通用问题

优化问题

优化问题

子问题结构

每个子问题不同

很多子问题重复(不独立)

只有一个子问题

最优子结构

不需要

必须满足

必须满足

子问题数

全部子问题都要解决

全部子问题都要解决

只要解决一个子问题

子问题在最优解里

全部

部分

部分

选择与求解次序

先选择后解决子问题

先解决子问题后选择

先选择后解决子问题

分治算法特征:

1)规模如果很小,则很容易解决。//一般问题都能满足

2)大问题可以分为若干规模小的相同问题。//前提

3)利用子问题的解,可以合并成该问题的解。//关键

4)分解出的各个子问题相互独立,子问题不再包含公共子问题。 //效率高低

【一】动态规划:

依赖:依赖于有待做出的最优选择

实质:就是分治思想和解决冗余。

自底向上(每一步,根据策略得到一个更小规模的问题。最后解决最小规模的问题。得到整个问题最优解)

特征:动态规划任何一个i+1阶段都仅仅依赖 i 阶段做出的选择。而与i之前的选择无关。但是动态规划不仅求出了当前状态最优值,而且同时求出了到中间状态的最优值。

缺点:空间需求大。

【二】贪心算法:

依赖:依赖于当前已经做出的所有选择。

自顶向下(就是每一步,根据策略得到一个当前最优解。传递到下一步,从而保证每一步都是选择当前最优的。最后得到结果)

【三】分治算法:

实质:递归求解

缺点:如果子问题不独立,需要重复求公共子问题

转载于:https://www.cnblogs.com/secbook/archive/2011/11/29/2655088.html

相关文章:

  • 淘宝web服务器tengine
  • 【转载】NuGet 是个什么玩意?
  • 常见的英文口语400句
  • 修改Tomcat 7的用户密码
  • 参数化图形驱动及Web零件库的研究开发
  • 监控行业信息化应用
  • repeater 用控件分页,checkbox 全选 ,全部删除 ,单行删除 完整功能 !
  • 探讨神奇的需求变更:程序员遭遇车祸成植物人,需求变更将其唤醒
  • Vbs 禁用启用网卡
  • 谷歌:全球10大爬升最快搜索关键字排行榜 Google Zeitgeist 2011
  • Exchange系列—配置SMTP连接器的安全机制
  • 开始写博客吧
  • mnesia数据库学习笔记一
  • 某机字长为32位,存储容量为64MB,若按字节编址.它的寻址范围是多少?
  • 用深信服SG4300代替ISA
  • 【剑指offer】让抽象问题具体化
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 2017前端实习生面试总结
  • es6(二):字符串的扩展
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • JAVA多线程机制解析-volatilesynchronized
  • Js基础知识(四) - js运行原理与机制
  • Median of Two Sorted Arrays
  • ubuntu 下nginx安装 并支持https协议
  • vuex 笔记整理
  • Webpack 4x 之路 ( 四 )
  • windows下mongoDB的环境配置
  • Yeoman_Bower_Grunt
  • 回流、重绘及其优化
  • 三栏布局总结
  • 什么软件可以剪辑音乐?
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 微信小程序--------语音识别(前端自己也能玩)
  • 学习HTTP相关知识笔记
  • 如何用纯 CSS 创作一个货车 loader
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​ubuntu下安装kvm虚拟机
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #LLM入门|Prompt#3.3_存储_Memory
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (安卓)跳转应用市场APP详情页的方式
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (一)RocketMQ初步认识
  • (转)nsfocus-绿盟科技笔试题目
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET微信公众号开发-2.0创建自定义菜单
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • @Async注解的坑,小心
  • @KafkaListener注解详解(一)| 常用参数详解
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians