算法第四章作业

1.对贪心算法的理解

贪心选择算法从一开始就选择局部的最优解,一步步得到整体的解,而不是直接从整体上考虑,在很多情况下可以达到最优解的效果,而且比动态规划算法简单直接,效率更高,但是贪心算法并不是任何情况下都能得到最优解,可能只是得到最优解的一个近似解。若要得到最优解,需满足以下两个性质:

贪心选择性质,是指所求问题的整体最优解可以通过一系列局部最优的选择来得到,这是其可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。

最优子结构性质,当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。运用贪心策略在每一次转化时都取得了最优解。

2.汽车加油问题的贪心选择性质

汽车每行驶到一个加油站就检查一次剩的油够不够开到下一站,不够的话就加,够就继续行驶。这样就可以得到每一个子问题的最优解,进而得到整体最优解。

在前面输入后,先检查有没有哪两段路之间的距离超出加满油时的可行驶距离。

for (int i = 0; i <= k; i++)
{
    if (surplus < d[i])
    {
        surplus = n;
        times++;
    }
    surplus -= d[i];
}

 

3.在本章学习过程中遇到的问题及结对编程的情况

这一章比上一章理解上简单许多,但是做题做到删数问题时还是纠结了很久,我想到了用构造最优解的方法,但是细节处理的不好导致做的很慢,错误百出。和队友也讨论了很久才写出来。另一个学的不是很好的就是关于最优子结构性质的证明这一块。

posted on 2019-11-25 22:30  Aozaki  阅读(156)  评论(0编辑  收藏  举报