《Cc语言贪心算法》PPT课件

《Cc语言贪心算法》PPT课件

ID:36643940

大小:701.60 KB

页数:15页

时间:2019-05-09

《Cc语言贪心算法》PPT课件_第1页
《Cc语言贪心算法》PPT课件_第2页
《Cc语言贪心算法》PPT课件_第3页
《Cc语言贪心算法》PPT课件_第4页
《Cc语言贪心算法》PPT课件_第5页
资源描述:

《《Cc语言贪心算法》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、怀化学院/计算机系/2012怀化学院ACM培训本次课程的主要内容贪心算法贪心算法1、什么是贪心算法:贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。2、基本思路(1)建立数学模型来描述问题。(2)把求解的问题分成若干个子问题。(3)对每一子问题求解,得到子问题的局部最优解。(4)把子问题的解局部最优

2、解合成原来解问题的一个解。3、算法实现。(1)从问题的某个初始解出发。(2)采用循环语句,当可以向求解目标前进一步时,就根据局部最优策略,得到一个部分解,缩小问题的范围或规模。(3)将所有部分解综合起来,得到问题的最终解。贪心算法-例题分析例题1、[背包问题]有一个背包,背包容量是M=150。有7个物品,物品可以分割成任意大小。要求尽可能让装入背包中的物品总价值最大,但不能超过总容量。物品:A  BCDEFG重量:35  30  60  50  40  10  25价值 :10  40  3050  35  4

3、0  30分析: 目标函数:∑pi最大 约束条件是装入的物品总重量不超过背包容量:∑wi<=M(M=150)(1)根据贪心的策略,每次挑选价值最大的物品装入背包,得到的结果是否最优?(2)每次挑选所占空间最小的物品装入是否能得到最优解?(3)每次选取单位容量价值最大的物品,成为解本题的策略。根据以上的分析我们就可以得到解决本题的策略。即单位容量最大的物品。贪心算法-例题分析例题1算法实现:在算法的实现上应该不是很难,只要我们算出每个物品在单位容量上的价值就行,然后再使用一个排序的算法,将其从大到小排序。然后再根

4、据背包当前剩下的容量来选取本次物品的重量。如果背包的容量比当前武平的容量要大,那么就将当前物品全部装进去。如果不够,那么就将当前物品切割装进去。然后就可以跳出循环。这里我们在存储数据时为了方便起见可以使用一个结构体的方式来存储。结构体里面保存物品的重量,价值,以及单位质量的价值。然后使用sort函数来排序,排序时我们只要重写sort函数里面的比较函数即可。Sort(p,p+n,Up)。P使我们保存物品的结构体。N是物品的总数。Up使我们自定义的排序方法。贪心算法-例题1代码贪心算法-例题分析例题2:活动安排题目

5、:设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si

6、i都有一个要求使用该资源的起始时间starti和一个结束时间endi,且starti

7、开始时间starti小于最近选择的活动j的结束时间endj,则不选择活动i,否则选择活动i加入集合中。运用该算法解决活动安排问题的效率极高。当输入的活动已按结束时间的非减序排列,算法只需O(n)的时间安排n个活动,使最多的活动能相容地使用公共资源。如果所给出的活动未按非减序排列,可以用O(nlogn)的时间重排。实现代码:贪心算法-例题分析 例题3:克鲁斯卡尔算法-最小生成树假定输入如下:6061500605030150564505002036006004260由于是对称三角形,可以只使用下三角或上三角,在此使

8、用下三角部分,即i>j的部分。演示算法实现过程。人工模拟1234555666最小生成树的耗费为15算法难点从刚才的演示过程,可知算法实现有两个难点:(1)边的选择要求从小到大选择,则开始显然要对边进行升序排序。(2)选择的边是否需要,则从判断该边加入后是否构成环入手。难点解决(一)(1)对边升序排序方法可根据以前《数据结构》中选择合适的排序。在此采用链式结构,通过插入排序完成。每一结点

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。