贪心算法(Python实现)

贪心算法(Greedy Algorithme)含义:

在对问题求解时,总是作出在当前看来是最好的选择。也就是说,不从整体上加以考虑,它所作出的仅仅是在某种意义上的局部最优解(是否是全局最优,需要证明)。

下面我们通过具体的问题去应用贪心算法。

最优装载问题

问题描述

有一天海盗们截获了一艘装满各种各样古董的货船,每一件都价值连城,一旦打碎就是去了价值, 海盗船载重量为C,每件固定的重量为wi,海盗们该如何尽可能装载最多数量的古董呢? 

古董重量清单:

重量W[i] 4 10 7 11 3 5 14 2

 算法设计:

1. 船载重量固定为C,只要每次选择重量最小的古董,直到不能再装为止,这样装载的古董数量最大,这就是贪心策略;

2. 把古董按重量从小到大排序,根据策略选出尽可能多的古董。

用Python实现最优装载问题,代码如下:

def max_ans(antique):
    anti_sort = sorted(antique)  # 对重量排序
    C = int(input("请输入海盗船所能装载的最大容量:"))
    ans, tmp = 0, 0  # ans记录装载古董数量,tmp记录装载古董重量
    ship = []  # 记录装载的古董
    for a in anti_sort:
        tmp += a
        if
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值