Advertisement

算法设计与分析中的贪心算法用于解决背包问题

阅读量:

0-1背包问题:
前提条件为:存在n类物品及一个背包。其中,物品i的重量为Wi,对应的价值为Vi,而背包的最大承载能力为C。
问题核心在于:如何挑选物品装入背包,以实现所装载物品总价值的最大化?

背包问题:
此问题与0-1背包问题存在相似之处,但区别在于在对物品i进行选取时,允许仅取其部分而非必须全部装入,其中1≤i≤n。

贪心算法在每一步决策中均倾向于选择当前条件下最为理想的选择方式,即该策略并非从全局最优的角度出发进行考量,其作出的决策仅属于某种意义上的局部最优解;
尽管贪心算法无法确保所有问题都能获得全局最优解,但对于大量实际问题而言却能够产生最佳解。即便在某些情况下无法达到整体最优解,其所得结果仍可作为最优解的一个非常接近的近似方案。

注意:避免使用if else结构

复制代码
    #include<iostream>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    
    typedef struct Node
    {
    	float value;
    	float weight;
    	float vw;//单位重量的价值 
    }node;
    bool cmp(node x,node y)

全部评论 (0)

还没有任何评论哟~