您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 实验一-算法的时间复杂度分析
计算机课程实验报告2012—2013学年度第二学期系别:数学与计算机科学学院实验课程算法分析与设计班级10信科班学号201004230106姓名指导教师惠云实验题目算法的时间复杂度日期2013年03月08日实验目的及要求1、理解算法复杂度的概念;2、掌握算法复杂度计算的方法;一实验内容1.设计程序,求1+2+3+…+n前n个整数之和,至少用两种不同的算法实现。2.设计程序,求n的阶乘,至少用两种不同的算法实现。二:程序源代码1:(1)第一种方法:直接求和思想#includestdio.hmain(){inti,n,sum=0;printf(请从键盘输入数据\n);scanf(%d,&n);for(i=1;i=n;i++)sum=sum+i;printf(sum=%d\n,sum);return0;}(2)第二种方法:函数调用思想#includestdio.hintadd(intm);main(){intn;printf(请从键盘输入数据\n);scanf(%d,&n);printf(sum=%d\n,add(n));return0;}add(intm){inti,sum=0;for(i=1;i=m;i++)sum=sum+i;returnsum;}2:(1)用数组实现方法:#includestdio.h#defineMAX10//数组最大空间#defineN7//求7阶乘main(){longa[MAX];inti;a[1]=1;for(i=2;iMAX;i++)a[i]=i*a[i-1];printf(%d!=%ld/n,N,a[N]);}(2)第二种方法:函数调用思想#includestdio.hfloatg(intn){inti=1;floaty=1;if(n==0)y=1;elsefor(i=1;i=n;i++)y*=i;return(y);}main(){while(1){inta;printf(pleaseinputanumber:n=);scanf(%d,&a);if(a0)printf(error!);elseprintf(%d!=%f\n,a,g(a));printf(Pressanykeytocontinue...);}}三程序运行结果1:第一种方法:第二种方法:2:第一种方法:第二种方法:四程序运行结果分析1.分别分析你编写的两种算法的时间复杂度。2.分别分析你编写的两种算法的时间复杂度。
本文标题:实验一-算法的时间复杂度分析
链接地址:https://www.777doc.com/doc-5660042 .html