实验一-算法的时间复杂度分析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算机课程实验报告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.分别分析你编写的两种算法的时间复杂度。

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功