专题一 贪心算法总结

来源:互联网 发布:windows程序设计教材 编辑:程序博客网 时间:2024/05/18 00:31

贪心算法总结

一、解释:

在求问题最优解的时候,从问题的初始状态出发,去求每一步的最优解,通过若干次的贪心选择最终得到整个问题最优解的方法

二、理论基础:

1.每一步都采用当前状态下最好的选择,

2.通过局部最优得到全局最优。

3.并不能保证总是能够得到所有问题的最理想结果

4.利用贪心算法需要知道:

(1).该题是否适合贪心算法.

(2)如何选择贪心标准。

5.贪心算法的每一次操作都会对结果产生直接的影响

6.问题的最优子结构性质是该问题求解的关键

三、贪心算法的求解过程

1.候选集合

2.解集合

3.解决函数

4.选择函数又称贪心策略

5.可行函数

四、经典问题

1.活动安排问题

struct action{

int s;

int f;

int index

};

然后排序

用数组记录被选中的活动

2.背包问题(物品可以分割)

struct bag{

int w;

int v;

double c;

};

按性价比排序

选性价比高的装入

3.最优装载问题

struct  load{

int index;

int w;

};

按集装箱的重量排序

将重量最轻者先装

4.删数问题

按最近下降点优先的贪心策略


0 0