从零开始学算法:基于Python
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.5.3 装载问题算法实现

通过上一节的图解,相信大家对装载问题算法已经有了了解,装载问题算法的实质就是对体积最小的物品进行贪心,老王是个算法爱好者,知道搬家师傅是根据经验进行装载的,并没有理论基础,如果是个没有经验的小伙子搬家可能会搬错。接下来老王要通过编程模拟装载策略,来指导没有经验的小伙子搬家。算法完整代码如下。

装载问题算法程序运行结果如图2.36所示。

图2.36 装载问题算法程序运行结果

可以发现,程序的运行结果和前面的分析结果是一致的。老王已经成功地通过程序模拟了装载策略,这样,如果来的搬家师傅没有经验,也可以通过程序帮助没有经验的搬家师傅装载物品。接下来我们对程序重要的数据结构和方法进行讲解。

首先我们要定义一个包裹类,该包裹类应该包含如下信息:包裹名字、包裹质量,如下所示。

在算法中我们会对物品的体积从小到大进行排序,如下所示。

每次将体积最小的物品装到搬家车上,直到搬家车装不了为止,如下所示。