贪心算法学习总结

在学习完STL之后,我们就已经开始了贪心算法的学习,算法在我看来主要就是一种解题思路,能够帮我们更好的解决生活中的我们遇到的问题,解决我们遇到的各种问题,不只是现在学习的贪心算法,还有很多的其他的算法,比如:递归算法,递推算法等。
贪心算法主要的内容在我看来就是将复杂的问题转化为一步一步的小问题,再将这些简化后的问题分别的求出解,再将这些解整合得出最优解,贪心算法不是从整体上考虑问题,它所做出的选择只是在某种意义上的局部最优解,而由问题自身的特性决定了该题运用贪心算法可以得到最优解。
但是贪心算法的使用也是有界限的,不可能每一个的问题都能够使用贪心算法来解决,因此在做相关的题目的时候我们就要考虑该题是否能用贪心算法,还有就是如何使用贪心算法来得到最优解,贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。
贪心算法在使用的过程中有一点贪心算法的每一次操作都对结果产生直接影响,即每一次得到的结果是不能后退的,不能够改变。还有,在贪心算法的过程中还有几个应该注意的方面和几个概念:候选集合A:为了构造问题的解决方案,有一个候选集合A作为问题的可能解,即问题的最终解均取自于候选集合A;解集合S:随着贪心选择的进行,解集合S不断扩展,直到构成满足问题的完整解;解决函数solution:检查解集合S是否构成问题的完整解;选择函数select:即贪心策略,这是贪心法的关键,它指出哪个候选对象最有希望构成问题的解,选择函数通常和目标函数有关;可行函数feasible:检查解集合中加入一个候选对象是否可行,即解集合扩展后是否满足约束条件。
贪心算法我现在的学习过程中我所遇到相关的问题
(一)装载问题(背包问题)
要达到我们想要的最优情况,最好的不是将最有价值的装进去而是按性价比先进行排序然后按照这个顺序从高到低地将其装载进去。
(二)删数问题
给我们的几个数字我们要想得到的最小的数字,在我看来可以将其中的排列在前面的较大数字优先删除掉保证最高位的数字是附近几个数字中的最小就能保证得到的数字是比较小的。
(三)最优服务问题
服务问题我们现在的每个人接受服务的时间就是自己和之前所有人时间的总和,而当更高一级的客户来的时候就会自动地排在现在接受服务的人的后面,后面所有的人次序就会自动的像后面加一。
现在感觉我们所学习的算法还是比较好理解的,能够很好的将问题按照算法的思路去解决,去代入。我们通过这样的算法能更好的使用现在所拥有的知识,算法我觉得更像是数学中的公式,知道清楚其中的原理就能很好的解决问题。现在的我确实感觉到了ACM的紧迫感现在STL还没有怎么认真的做完,贪心算法的例题就已经出来了,在下一步的学习中我一定要认真学习,多听多理解。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值