博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【算法概论】贪心算法
阅读量:4177 次
发布时间:2019-05-26

本文共 498 字,大约阅读时间需要 1 分钟。

本文参考:《算法的乐趣》,老师上课ppt


贪心算法,又称贪婪法Greedy algorithm

一般将求解过程分为若干个步骤,在每个步骤都应用贪心原则,选择当前状态下最好或最优的解。

贪心算法与其他算法最大的不同:

贪婪法每一步选择结束后,局部最优解就确定了,不再进行回溯处理。也就是说,每一个步骤的局部最优解确定后,就不再进行修改,直到算法结束。

the difference between dynamic programming and greedy algorithm

贪婪法只在少部分情况下可以得到最优解,如 Dijkstra 算法、Kruskal 与 Prim 最小生成树算法、Huffman构造算法(该复习了吖?)

贪婪法的基本设计思想:

(1) 建立对问题精确描述的数学模型,包括定义最优解的模型;

(2) 将问题分解为一系列子问题,同时定义子问题的最优子结构;

(3) 应用贪心原则确定每一个子问题的局部最优解,并根据最优解的模型,用子问题的局部最优解堆叠出全局最优解。

如:

例1
例2

       需要注意的是,0 - 1背包不可以使用贪心算法求解,而部分背包问题可以使用贪心算法求解。

  

 

转载地址:http://zxtai.baihongyu.com/

你可能感兴趣的文章
Android 的source (需安装 git repo)
查看>>
Ubuntu Navicat for MySQL安装以及破解方案
查看>>
java多线程中的join方法详解
查看>>
在C++中如何实现模板函数的外部调用
查看>>
HTML5学习之——HTML 5 拖放
查看>>
HTML5学习之——HTML 5 应用程序缓存
查看>>
HTML5学习之——HTML 5 Web Workers
查看>>
HTML5学习之——HTML 5 Canvas
查看>>
HTML5学习之——HTML5 内联 SVG
查看>>
HTML5学习之——HTML 5 服务器发送事件
查看>>
SVG学习之——HTML 页面中的 SVG
查看>>
SVG 形状学习之——SVG圆形
查看>>
SVG 滤镜学习之——SVG 滤镜
查看>>
mysql中用命令行复制表结构的方法
查看>>
hbase shell出现ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException
查看>>
让代码变得更优雅-Lombok
查看>>
解决Rhythmbox乱码
查看>>
豆瓣爱问共享资料插件发布啦
查看>>
Ubuntu10.10 CAJView安装 读取nh\kdh\caj文件 成功
查看>>
kermit的安装和配置
查看>>