贪心算法
一. 贪心算法
概念:在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,它所做出的仅仅是在某种意义上的局部最优解。
使用条件:
① 局部最优策略能导致产生全局最优解。
② 题目满足贪心选择性质,即所求问题的整体最优解可以通过一系列局部最优的选择,对于一个具体问题,要确定它是否具有贪心选择性质,必须证明每一步所作的贪心选择最终导致问题的整体最优解。
③ 最优子结构性质,即当一个问题的最优解包含其子问题的最优解时
使用方法:
① 从问题的某一初始解出发:
② 利用可行的决策,求出可行解的一个解元素。不断循环
③ 由所有解元素组合成问题的一个可行解;
二.例题分析
题目:删数问题
问题描述:给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最小的删数方案。
要点:删数之后顺序不能改变
贪心策略:从高位开始,若高位数值大于低位,则删去高位,循环,直到删掉k位
三. 结对编程情况
贪心算法的难点在于贪心策略的选择,由陈楚权敲代码,我旁边辅助

浙公网安备 33010602011771号