经典的背包问题有两种:

        1. 01背包问题-->

                【01背包问题这里就不详细介绍了,感兴趣的可以看我的另一篇博客】

有一个背包,容量是C,有若干个物品,价值各不相同,

                                       重量也各不相同。接下来请你选择一部分物品装入背包,

                                          要保证不超过背包的容量的前提下,使背包中物体的总价值最大。

                                          允许选择一件物品的一部分。【与01背包的不同之处】

                2.1  贪心算法:每次都做出对于目前情况最好的选择,注意这里说的使对于目前情况。

                                          也就是说寻求问题对于决策时刻的局部最有解。而不是对于整个问题。

                                          所以贪心算法往往只能得到最优解的近似解,对于有些问题使用贪心算                                            法就不太合适了。

                        贪心:哈哈,喜欢占小便宜。笑死

 贪心详解:贪心法通常一自顶而下的方式进行,分阶段工作,以迭代的作出相继的贪心选择。每做一次贪心选择就将所求问题简化为规模更小的子问题。在每一个阶段总是选择认为当前最好的方案,然后从小的方案推广到大的方案解决问题。

解题步骤:

                循环求解--->求出可行解的一个解元素-->由所有解元素组合成问题的一个可行解

问题模拟:

        物品1-->价值:9  重量:4    

        物品2-->价值:3  重量:6

        物品3-->价值:1  重量:3

        物品4-->价值:6  重量:2

        物品5-->价值:5  重量:5

        假设背包的容量为:10

        一:计算性价比

                物品1:2.55   

                物品2:0.5

                物品3:0.33

                物品4:3

                物品5:1

        二:将性价比最高的 物品 4 放入背包

                 C = 10 - 2 = 8

                 v  = 0 + 6 = 6

         三:将物品1放入背包

                    C = 8 -  4 = 4

                       V = 6 + 9 = 15

        四:将物品5的部分放入背包中

                    4 = 5x  -- >     x = 0.8

                     C = 4 - 5*0.8 = 0

                V = 15+5*0.8 =  19