贪心算法

一. 贪心算法

  概念:在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,它所做出的仅仅是在某种意义上的局部最优解。

  使用条件:

    ① 局部最优策略能导致产生全局最优解。

    ② 题目满足贪心选择性质,即所求问题的整体最优解可以通过一系列局部最优的选择,对于一个具体问题,要确定它是否具有贪心选择性质,必须证明每一步所作的贪心选择最终导致问题的整体最优解。

    ③ 最优子结构性质,即当一个问题的最优解包含其子问题的最优解时

  使用方法:

    ① 从问题的某一初始解出发:
    ② 利用可行的决策,求出可行解的一个解元素。不断循环
    ③ 由所有解元素组合成问题的一个可行解;

 

二.例题分析

  题目:删数问题 

  问题描述:给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最小的删数方案。

  要点:删数之后顺序不能改变

  贪心策略:从高位开始,若高位数值大于低位,则删去高位,循环,直到删掉k位

 

三. 结对编程情况

  贪心算法的难点在于贪心策略的选择,由陈楚权敲代码,我旁边辅助

posted @ 2020-11-14 15:19  Clearwings  阅读(182)  评论(0)    收藏  举报