实验1算法效率与时空复杂度检验.docVIP

  • 2
  • 0
  • 约3.46千字
  • 约 5页
  • 2021-10-08 发布于辽宁
  • 举报
《算法分析与设计》实验报告 实验1算法效率与时空复杂度检验 姓名XXX 学号XXX 班级XXXXXX 时间:XXXX-XX-XX 地点:XXX 同组人:无 指导教师:XXX 实验目的 1、 掌握一门程序设计语言 2、 掌握算法及程序设计的一般策略与方法 3、 掌握算法实验的一般步朦 4、 掌握算法分析与设计、算法比较的一般方法 5、 掌握算法实验中的时空复杂度的分析方法 6、 掌握算法实验方案的设计方法 实验内容 选择一个合适的程序设计语言(如C、C++、PASCAL等) 根据问题设计算法。问题如下 (百钱买百鸡问题)假设公鸡5元钱一只,母鸡3元钱一只,小鸡一元钱3 只。要用100块钱刚好买100只鸡,问有多少种买法,毎种买法中公鸡、母鸡、 小鸡的数董各为多少?设计一个实验方案,验证求解此问题的算法的正砌性, 比较并分析各算法的优劣。 设计实验方案。方案中应包括 多种问题求解算法 算法执行时间获取方法 抗时间“噪声”方法 时间结果分析对比方法 根据算法和实验方案设计实验程序 设计求解此问题的多种算法,并将它们转换成相应程序。 分析各算法(程序)的特点,比较它们的优劣。 安装程序设计语言系统。 输入各个程序,验证它们的正确性。 设计并运行能统计各程序执行时间并能抗“噪声”的程序,统计各算法的时间 开销,并与之前所做的理论分析比较,看是否一致。 实验环境 硬件:Intel (R) Pentium(R) CPU RAM:4G 软件:Myec I i pse2013 实验前准备 1、 算法设计:见实验步骤2 2、 程序设计:见实验步骤3 实验步骤 利用spark语言写出初步的算法,再用java作为程序实现语言,实验利用的IDE为 myelcipse2013,若直接在机器上編译运行需要安装JDK 2、 spark程序如下: PROGRAM百钱买百鸡() Integer M二100 Integer x, y, z, n, k Integer t2 Ggett ime() For k^-1 to M do //控制重复次数// n0 For x-0 to 100 do For y0 to100 do For y0 to 100 do For z-0 to 100 do If (100-5*x - 3*y)*3= z and x + y + z = 100 Then n^-n+1 pr int(n, x, y, z) end i f repeat repeat repeat repeat 12-ge tt imeO print((t2 - t1)/M) //取计算平均值.消除噪声// END. 3、 在Java中用System. currentTimeMi I I is 0获取时间,为抗时间噪声, 增加一个数组a[] [10],将每次结果加到数组中在,降低输出对计算时间的 干扰 4、 为比校精确计算出每个算法的时间,将每个算法计算100000遍,算出它 们的平均值 5、 保证每种核心算法外部变董环境和操作方法一致(如在时间的计算方法 上,结果的存储,计算的重复次数上一致),只改变核心算法,以使几种 算法在置终时间效率的比较上比较可靠 6、 根据spark语言写出对应的Java程序,并提出改进方案: 为减少环境的其它因素对结果的影响,写出通用的主程序如下 public class Baiji { public static void main(String[] args) { // todo Auto-generated method stub int M = 100000; int n = e, k; int[][] a = new int[50](3]; long tl, t2; tl = system.currentTimeMiLLis(); // 丿卜始i 时 for (k = 0; k M; k+*) { //循环i| gi次.得出平均时何 n=fl(a); 〃i协 何次込仃的时攸八川;?.「卄3!. } t2 = System. currentTime^ri 11 is (); // f? il.ik 时 System. out. print In (n iFJJ—次平场耗时:+ (float) (t2 - tl) / M + 忑抄\n 共有 H + n + -种买法”);// 1输出结果 for (int i = 0; i n; i++) { System.out.printin(S法” + i + ”??应买公鸡:” + a[i][0] + ”只.“鸡:- + a[i][l] + ”只.小鸡:-+ a[i][2] + ”只”); } } 以下是三种核心算法 方案一: static int fl(int[][] a){ 〃方

文档评论(0)

1亿VIP精品文档

相关文档