没有合适的资源?快使用搜索试试~ 我知道了~
实验指导书1-对算法运行时间的认识.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 157 浏览量
2023-02-22
21:49:01
上传
评论
收藏 195KB DOCX 举报
温馨提示
试读
2页
。。。
资源推荐
资源详情
资源评论
实验一 对算法运行时间的认识
【实验目的】通过对比同一问题不同解法的绝对执行时间,体会不同算法的优劣,理解如何
设计“好”的算法;
【实验内容】
1、编写一个程序,对于给定的正整数 n,求 1+2+3+……+n,分别采用逐个累加法和高斯
法(n*(n+1)/2),给出两种解法的求和结果和求解时间。
2、编写一个程序,求 1~n 中的素数的个数,给出两种解法。对于相同的n,给出这两种解
法的结果和求解时间。
3、编写一个程序,对于给定的正整数 n,求 1!+2!+3!+……+n!,给出一种时间复杂度为 O(n)
的解法。
【预备知识】在统计算法的运行时间的过程中,需要用到如下知识点:
1、 clock_t是时钟数据类型(长整形数);
2、 clock()函数返回 CPU 时钟计时单元数(以毫秒为单位);
3、 CLOCKS_PER_SEC是一个常量,表示 1 秒包含的毫秒数;
4、 表达式((float)t/CLOCKS_PER_SEC)返回 t 转换成的秒数;
5、 clock_t、clock()、CLOCKS_PER_SEC 均在头文件 time.h 中声明。
6、为了计算一个功能的运行时间,其基本方式是:
clock_t t;
t=clock();
//定义时钟变量 t
//求功能执行前的时间;
该功能执行完后,再次调用:
t=clock()-t;
//求时间差,即该功能的执行时间
printf(“用时为:%lf 秒”, ((float)t/CLOCKS_PER_SEC));
//转换为秒单位再输出
【实验要求】
1、编写一个程序,对于给定的正整数 n,求 1+2+3+……+n,分别采用逐个累加法和高斯
法(n*(n+1)/2),给出两种解法的求和结果和求解时间。
主函数定义如下:
int main()
{
long long n;
printf("n(大于 1000000):");
scanf("%lld",&n);
if(n<1000000)
return 0;
Addtime1(n); //采用累加法求解
printf("");
Addtime2(n); //采用高斯法求解
return 0;
}
资源评论
xxpr_ybgg
- 粉丝: 6542
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功