算法分析与设计实践作业10

1.     问题

有一批共n 个集装箱要装上艘载重量为c 的轮船,其中集装箱i 的重量为wi。找出一种最优装载方案,将轮船尽可能装满,即在装载体积不受限制的情况下,将尽可能重的集装箱装上轮船。

 

 

 

2.     解析

思路:轻者先装,直到再装任何集装箱将使船载重量超过C时停止。

定理:对于任何正整数k,算法(轻者先装)对k个集装箱的实例得到最优解。

 

 

 

 

 

 

3.     设计

在实现这个实验中主要运用了冒泡排序

冒泡排序:

For  i=0 to num-1{                     

        For j=0 to num-i-1{

            If前一个集装箱的重量大于后面一个

            交换

        }

}

 

for(int i=0;i<num&&good[i].weight<=maxweight;i++)

    {

        maxweight-=good[i].weight;

        good[i].flag=true;//标记已被装

    }

4.     分析

运行结果:

 

 

 

时间复杂度O(nlogn)

5.     源码

github地址:https://github.com/122cmy/myGitTemp10

博客地址:https://www.cnblogs.com/122cmy/

 

posted @ 2021-05-17 16:14  小月爱写代码  阅读(101)  评论(0)    收藏  举报