贪心算法

  • 人心不足蛇吞相
  • 贪心本质
  • 贪心需要注意的几个问题
  • 贪心算法需要遵循的原则
  • 例题
    • 最优装载问题
    • 简单背包问题
    • 会议安排问题
    • 课余时间也不要忘了有各种各样的活动呀。
  • 一道思考题

人心不足蛇吞相

从前有一个很穷的人救了一条蛇的命,蛇为了报答他的救命之恩,于是就让这个人提出要求,满足他的愿望。这个人一开始只要求简单的衣食,蛇都满足了他的愿望,后来慢慢的贪欲生起,要求做官,蛇也满足了他。一直到他做了宰相,还不满足,还要求做皇帝。蛇此时终于明了,人的贪心是永无止境的,于是一口就把这个人吞吃掉了。
所以,蛇吞掉的是宰相,而不是大象。故此,留下了“人心不足蛇吞相”的传说。

贪心本质

一个贪心算法总是做出当前最好的选择,也就是说,它期望通过局部最优从而得到全局最优的解决方案。
–《算法导论》
贪心算法在解决问题的策略上目光短浅,只根据当前已有的信息就做出选择,而且一旦做出了选择,不管将来有什么结果,这个选择都不会改变。换言之,贪心法并不是从整体最优考虑,它所做出的选择只是在某种意义上的局部最优。贪心算法能得到许多问题的整体最优解或整体最优解的近似解。因此,贪心算法在实际中得到大量的应用。

贪心需要注意的几个问题

(1)没有后悔药。 一旦做出选择,不可以返回。
(2)有可能得到的不是最优解,而是最优解的近似解。
(3)选择什么样的贪心策略,直接决定算法的好坏。

贪心算法需要遵循的原则

贪亦有道
所谓贪心选择性质是指原问题的整体最优解可以通过一系列局部最优的选择得到。应用同一规则,将原问题变为一个相似的但规模更小的子问题,而后的每一步都是当前最佳的选择。这种选择依赖于已经做出的选择,但不依赖于未做出的选择。运用贪心策略解决的问题在程序运行中无回溯的过程。
当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。问题的最优子结构性质是该问题是否可以用贪心算法解决的关键。

例题

最优装载问题

有一天,海盗们截获了一艘装满各种各样古董的货船,每一件古董都价值连城,一旦打碎就失去了它的价值。虽然海盗船足够大,但载重量为C,每件古董的重量为 wi,海盗们该如何把尽可能多数量的宝贝装上海盗船呢?
输入: 第一行, 载重量C及古董的个数N
第二行,每个古董的重量,用空格分隔
输出: 单独一行,最大可装载古董数

简单背包问题

假设山洞中有n种宝物,每种宝物有一定重量w和相应的价值v,毛驴的运载能力有限为,只能运走m重量的物品,一种宝物只能拿一件,宝物可以分割。那怎么才能使毛驴运走的价值最大呢?

会议安排问题

某跨国公司总裁正分身无术,为一大堆会议时间忙的焦头烂额,希望一个高级钟点秘书能做出合理的安排,能在有限时间内召开更多的会议(任意两个会议不能同时进行)。
在会议安排中,每一个会议i都有起始时间bi和结束时间ei,且bi<ei,即一个会议的进行时间为半开区间[bi,ei)。如果[bi,ei)与
[bj,ej)均在“有限的时间内”,且不相交,则称会议i和会议j是相容的。也就是说,当bi≥ej或bj≥ei时,会议i与j相容。会议安排问题要求在所给的会议集合中选出最大的相容活动子集,即尽可能的在有限时间内召开更多的会议。

课余时间也不要忘了有各种各样的活动呀。

现在玲玲学姐想给你们准备一个活动,但是她不知道你们什么时候有空,现在她要统计一下你们有事情的时间,在这些时间中间找到一个你们都空闲的最大的时间间隔。
现在一共有n个人,每个人会有在(x,y)时间段中是有事的。现在你需要帮着玲玲学姐在(0,m)时间段中找到那个最大的大家都有空的时间段的长度。输入:共n+1行

第1行:两个整数n,m第2到n+1行:每行两个整数xi,yi,表示第i个人在时间(xi,yi)有事情。输出:第1行:一个整数,表示最长的时间段的长度。

一道思考题

有N只蚂蚁以每秒1cm的速度在长为Lcm的竿子上爬行。当蚂蚁爬到竿子的端点时就会掉落。由于竿子太细,两只蚂蚁相遇时,它们不能交错通过,只能各自反向爬回去。对于每只蚂蚁,我们知道它距离杆子左端的距离Xi,但不知道它当前的朝向。请计算所有蚂蚁都从竿子上掉落所需的最短时间和最长时间。

物联网技术部培训---贪心算法相关推荐

  1. 物联网技术部培训——网页前端之HTML

    物联网技术部培训--网页前端之HTML 此博文用Markdown所写,会自动将标签转换成HTML,故以下有关标签都以代码块表示 网页 物联网技术部培训--网页前端之HTML 1. 什么是网页 1.1 ...

  2. 物联网技术部第六次培训----网页制作入门HTML

    物联网技术部第六次软件培训----HTML 文章目录 物联网技术部第六次软件培训----HTML 什么是网页? 网页类型 网页开发中最基础的语言:HTML 网页前端html有什么基础语法? 文本标签 ...

  3. 一份贪心算法区间调度问题解法攻略,拿走不谢

    作者 | labuladong 来源 | labuladong(ID:labuladong) [导读]什么是贪心算法呢?贪心算法可以认为是动态规划算法的一个特例,相比动态规划,使用贪心算法需要满足更多 ...

  4. 算法设计与分析第3章 贪心算法

    第4章 贪心算法 贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择. 贪心算法的基本要素 1.贪心选择性质 所谓贪心选择性质是指所 ...

  5. 贪心算法单源点最短路径例题c语言源代码,Dijkstra算法是解单源最短路径问题的一个贪心算法...

    问题描述 给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数. 另外,还给定 V 中的一个项点,称为源. 现在我们要计算从源到所有其他各项点的最短路径长度. 这里的长度是指路上各边权之 ...

  6. 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码

    1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...

  7. 漫画:五分钟学会贪心算法!

    假设一个问题比较复杂,暂时找不到全局最优解,那么我们可以考虑把原问题拆成几个小问题(分而治之思想),分别求每个小问题的最优解,再把这些"局部最优解"叠起来,就"当作&qu ...

  8. 下载插件(贪心算法)

    小扣打算给自己的 VS code 安装使用插件,初始状态下带宽每分钟可以完成 1 个插件的下载.假定每分钟选择以下两种策略之一: 使用当前带宽下载插件 将带宽加倍(下载插件数量随之加倍) 请返回小扣完 ...

  9. Runnable接口和贪心算法

    1 Runnable接口 Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现.设计该接口的目的是为希望在活动时执行代码的对象提供一个公共协议.激活的意思是说某个线程已启动并且尚未停止 ...

最新文章

  1. 《 线性代数及其应用 (原书第4版)》—— 2.3 可逆矩阵的特征
  2. [ASP.NET 控件实作 Day28] 图形验证码控件
  3. 文件上传下载—servlet API实现
  4. stm8s 时钟库函数选择内部RC初始化
  5. 用简单的语言描述C++ 是什么?
  6. 一个低时延高吞吐的日志方案设计-2021年6月4日
  7. 【计算机网络】TCP关闭连接问题及注意
  8. scrapy爬虫框架入门实战
  9. 转:毕业几年出来来的我们的生活
  10. Python:“TypeError: list indices must be integers or slices, not str“问题解决方案
  11. 语法分析器的生成器——Bison
  12. 超好玩的msn自制动画头像
  13. c语言单片机秒表程序,单片机秒表程序
  14. 亚马逊注册成功,需要的进一步的设置一:税务信息设置
  15. Vine已死,秒拍抱团崛起,同是视频社交差距在哪?
  16. Jquery .val 与 .value 区别
  17. 怎么使用漫画脸制作软件
  18. 这8大技术趋势,将塑造未来科技行业格局
  19. 别在@官方加国旗啦,3分钟30行Python代码帮你搞定!还加鸡腿,加IPhone11!
  20. 军事武器开发使用c语言吗,【单选题】( )是军事革命的前提条件和物质基础,是军事革命的“硬件”。 A. 先进的技术和武器系统 B. 科学的体制编制 C. 创新的军事理论 D. 富有才干的领导人...

热门文章

  1. UVA - 12325 Zombie's Treasure Chest 暴力
  2. MPU6050的dmp代码移植的过程--转
  3. win32-防火墙-禁用软件联网-详细教程
  4. 模拟退火算法及常见应用
  5. contains( )方法
  6. 海思Hi3516CV500/Hi3516DV300处理参数比较
  7. 东师奥鹏计算机应用基础19春,东师计算机应用基础19春在线作业1【参考答案】...
  8. 零基础怎么做好海报重叠设计
  9. 语法解析错误: syntax error, unexpected ‘��‘ (T_STRING), expecting ‘,‘ or ‘;‘
  10. html中div区域可以交叉引用,需要js中的交叉引用