
2.5.2 搬家师傅的十年经验
老王打包的物品也没有多少,一共才打包了8个物品,8个物品的体积分别如下:
● 物品A:4;
● 物品B:1;
● 物品C:3;
● 物品D:2;
● 物品E:7;
● 物品F:12;
● 物品G:11;
● 物品H:7。
而搬家师傅的装载车容量是20。只见搬家师傅想都没想,看了一眼眼前的8个物品,撸起袖子,干起活来。
(1)搬家师傅先把体积最小的物品B装到了车上。搬家车的容量是20,B的体积是1,所以搬家车的容量还剩19,如图2.31所示。
(2)然后搬家师傅把剩下物品中体积最小的物品D装到了车上。搬家车的剩余容量是19,D的体积是2,所以搬家车的容量还剩17,如图2.32所示。
(3)接着搬家师傅把剩下物品中体积最小的物品C装到了车上。搬家车的剩余容量是17,C的体积是3,所以搬家车的容量还剩14,如图2.33所示。

图2.31 基于容量进行贪心装载物品B

图2.32 基于容量进行贪心装载物品D

图2.33 基于容量进行贪心装载物品C
(4)再然后搬家师傅把剩下物品中体积最小的物品A装到了车上。搬家车的剩余容量是14,A的体积是4,所以搬家车的容量还剩10,如图2.34所示。

图2.34 基于容量进行贪心装载物品A
(5)最后搬家师傅把剩下物品中体积最小的物品E装到了车上。搬家车的剩余容量是10,E的体积是7,所以搬家车的容量还剩3,如图2.35所示。

图2.35 基于容量进行贪心装载物品E
搬家师傅看了看搬家车剩余的容量和没有装载的物品,擦了擦额头上的汗水,说道:“老板,装完了,你看一下”。
老王看了看装载的物品,满意地点了点头。老王是个程序员,他对搬家师傅的搬物品策略进行了分析,每次都是选剩余物品中体积最小的物品进行装载,其本质就是基于物品的体积进行贪心,从而保证装载车可以装载最多的物品。搬家师傅虽然不懂什么贪心算法,但是十年的搬家经验使得他无意间使用了该算法,老王默默嘀咕着:算法来源于生活,生活中处处都是算法呀。