实验1-算法的时间复杂性分析

实验1-算法的时间复杂性分析
实验1-算法的时间复杂性分析

实验报告封面

课程名称:算法分析课程代码: SH3001

任课老师:陈坚强实验指导老师: 陈坚强

实验报告名称:算法的时间复杂性分析

学生姓名:

学号:

教学班:

递交日期:

签收人:

我申明,本报告内的实验已按要求完成,报告完全是由我个人完成,并没有抄袭行为。我已经保留了这份实验报告的副本。

申明人(签名):

实验报告评语与评分:

评阅老师签名:

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

一、实验目的

1.掌握算法的计算复杂性概念。

2.掌握算法渐近复杂性的数学表述。

3.掌握用C++语言描述算法的方法。

4.实现具体的编程与上机实验,验证算法的时间复杂性函数。

二、实验环境

Windows XP以上版本的操作系统,Visual C++ 6.0 / VS 2005/2008/2010版编程环境。

三、实验内容

1、求下列函数的渐近表达式

(1)3n2+10n o( n2)

(2) n2/10+2n o( n2)

(3)21+1/n o( )

(4)10 log3n o(n)

2、分析下面算法属于什么功能,并求算法的时间复杂性函数

int factorial(int n)

{

if (n == 0) return 1;

return n*factorial(n-1);

}

n的阶乘

3、算法实现题,要求写出问题的分析过程,然后上机实现算法

统计数字问题:

(1)、问题描述

一本书的页码从自然数1 开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如,第6 页用数字6 表示,而不是06 或006 等。数字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1,2, (9)

(2)、算法设计

给定表示书的总页码的10 进制整数n (1≤n≤109) 。编程计算书的全部页码中分别用到多少次数字0,1,2, (9)

提示:

1、POW函数

原型:float pow(float X,int Y);

头文件:#include

功能:计算x的y次幂。

2、int weishu(int n); //求位数

int zuigao(int n); //求最高位的数字

int f(int n); //所有n位数中0-9出现的相同次数

相关主题
相关文档
最新文档