课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
贪心算法是我们在学习软件编程开发技术的时候需要重点掌握的一个编程算法,而本文我们就简单来了解一下,贪心算法入门基础知识都有哪些。
优子结构:对比DFS,不是进行各种可选支路的试探,而是当下就可用某种策略确定选择,无需考虑未来(未来情况的演变也影响不了当下的选择)。只要一直这么选下去,就能得出终的解,每一步都是当下(子问题)的优解,那么终得出的结果就是问题的优解,这叫做优子结构。
更书面的说法:如果问题的一个优解中包含了子问题的优解,则该问题具有优子结构,具备这类结构的问题,可以用局部优解来推导全局优解,可以认为是一种剪枝法,是对“深度优先搜索”的优化。
贪心:由上一步的优解推导下一步的优解,而上一步之前的(历史)优解不作保留。
思想:贪心算法的基本思路是从问题的某一个初始解出发一步一步地进行,根据某个优化测度,每一步都要确保能获得局部优解。每一步只考虑一个数据,他的选取应该满足局部优化的条件。若下一个数据和部分优解连在一起不再是可行解时,就不把该数据添加到部分解中,直到把所有数据枚举完,或者不能再添加算法停止。
过程:
1、建立数学模型来描述问题;
2、把求解的问题分成若干个子问题;
3、对每一子问题求解,得到子问题的局部优解;
4、把子问题的解局部优解合成原来解问题的一个解。
贪心算法和DFS:贪心算法主要是解决优解,如多少等等,而DFS主要是求解所有解,包含求解所有解的个数。
无论是在竞赛还是工作中还有一个重要的技巧就是根据示例的输入输出来反推解题思路。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加抖音达内三江区域学习了解。