一、我对贪心算法的理解
贪心算法总是做出在当前看来是最好的选择,并不从整体最优上加以考虑,他所做出的选择只是在某种意义上的局部最优选择。虽然贪心算法不是对所有问题都能得到整体最优解,但对范围相当广的许多问题,他能产生整体最优解。
基本要素:
1.贪心选择性质:所求问题的整体最优解可以通过一系列局部最优的选择来达到。贪心算法所做的贪心选择可以依赖于以往所做过的选择,但决不依赖于将来所做的选择,也不依赖于子问题的解。贪心算法通常以自顶向下的方式进行,以迭代的方式做出相继的贪心选择,每做一次贪心选择就将所求问题简化为规模更小的子问题。
2.最优子结构性质:当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。
今典问题:活动安排问题,背包问题,哈夫曼编码,最小生成树
二、汽车加油问题的贪心选择性质
贪心选择:最远能到达的地方的前一个加油站,不断这样选择,直到到达目的地;如果是其刚才所在的加油站,表示无法到达目的地,输出“No Solution!”
三、遇到的问题及结对编程的情况
1.问题:哈夫曼编码的前缀码的二叉树有点难理解
2.结对编程情况:在课上齐心协力把前两道题做出来了,课后把第三题做出来了,课上在第二题那里在Dev C++上所有情况考虑进去,运行出来的是正确答案。但是在PTA上就是后面有一个答案错误,很疑惑。最后找呀找,同伴找到了了问题,最后答案正确。