1、宁夏师范学院数学与计算机科学学院算法分析与设计实验报告实验序号:9 实验项目名称:贪心算法设计学 号 23 姓 名 专业、班 10 信科班实验地点 318 指导教师 惠云 时间 2013530一、实验目的及要求(1) 掌握贪心算法的基本思想和组成要素;(2) 掌握使用贪心方法解决实际问题的基本方法和步骤;二、实验设备(环境)及要求1、环境要求:硬件:PC (PII 以上,128M 以上内存) 、因特网接入;软件:Windows XP 操作系统、VC+6.0 编程环境。2、实验要求:(1) 独立完成实验,源代码书写规范;(2) 程序运行结果以屏幕截图的方式粘贴在对应位置,截图必须清晰准确;(3)
2、 实验完成后必须有实验结果的分析及本次实验的总结。三、实验内容与步骤1、设计求解背包问题的程序,并将装入背包的物品的最大价值及最优解在屏幕上显示。#include#define maxnumber 20 typedef struct node float w; float v; int i; Object;float find(Object wp,int n,float M) float xmaxnumber; int i; float maxprice=0; for(i=1;i=i;j-) if(wpj-1.v/wpj-1.w #include #define N 3 int main()
3、int tN,wN,n,c,m,i,j=0,sum=0; int min;int max=0,weight=0; printf(“请输入轮船的载重量c:n“);scanf(“%d“,printf(“请输入可以装入的集装箱的数目n:n“);scanf(“%d“,printf(“请输入各集装箱的重量:n“);for(i=0;iwj) int tem; tem=wj; wj=wi; wi=tem; for(i=1;i=N;i+)printf(“%d n “,wi); printf(“n“); n=i-1; printf(“最优装载情况为:“); for(i=1;i=N;i+)printf(“%d“,wi);printf(“装入轮船的集装箱序列为:“); for(i=1;i=N;i+)sum+=wi;if(sum=c) printf(“%d“,wi);printf(“装入的集装箱的最大重量为:%dn“,sum);四、实验结果与数据处理1背包问题的结果:2.结果:五、分析与讨论1、分析求解背包问题算法的时间复杂度。背包问题算法的时间复杂度为 O(nlogn).2. 分析求解最优装载问题算法的时间复杂度。最优装载问题算法的时间复杂度为O(nlogn).六、教师评语签名: 成绩日期: 年 月 日