贪心算法

这两节课老师讲了贪心算法,贪心算法,顾名思义,就是解决问题的过程中要贪心,通过几次的贪心的选择,寻找到最优的的结果。这是一种思想,而非什么函数啥的。我的理解就是贪心算法并不是从整体去找最优解,而是把整体分成一个个小部分,寻找局部的最优解。如果一个问题可以用好几种方法去解决,那贪心算法我们应优先使用。 1,理论基础         贪心算法是一种在每一步都选择最优的选择,在每一步做的选择都是在当前状态下最好的选择,通过局部最优解来得到整体最优解。 2,最优子          当一个问题的最优解包含其子问题的最优解时,那么撑这个问题具有最优子结构的性质。 3,求解过程            使用贪心算法时要考虑几个因素            (1),候选集合A  问题的最终解来自于候选集合A。            (2),解集合S            (3),解决函数solution  检查解集合S是否构成问题的完整解。            (4),选择函数select  贪心策略,这个指出哪个候选对象最有希望构成问题的解。            (5),解决函数feasible  检查解集合扩展后是否满足约束条件。 4,一般流程 Greedy(A) {    S={ };              while (not solution(S))     {      x = select(A);           if feasible(S, x)           S = S+{x};        A = A-{x};   }    return S; } 以上基本就是我的感悟,其实并没有学到太多,还是自己水平不够感悟不深。-_-||

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值