实验一 算法的时间复杂度测试
1、实验目的:
(1)掌握时间复杂度的基本概念。
(2)熟悉程序计算时间的计时方法。
2、实验环境与设备:
已安装Visual Studio 2010(或其以上版本)集成开发环境的计算机。
3、实验原理:
基于计时函数clock()进行毫秒级计时。
4、实验内容:
请编写两个程序,分别调用下列两个函数测试它们在不同计算规模时的运行时间并验证其时间复杂度,尝试画出计算时间相对于计算规模的函数曲线示意图。
(1)在三重循环下的基本加法运算的计算时间与计算规模的关系,其时间复杂度为O( n3 )。函数定义如下:
void add ( int n )
{
int i, j, k ,x;
x = 0;
for( i = 1; i<= n; i++ )
for( j = 1; j <= i; j++ )
for( k = 1; k<= j; k++ )
x++;
}
(2)调用Hanoi函数测试汉诺塔问题的计算时间与计算规模的关系,其时间复杂度为O( 2n )。函数定义如下:
void hanoi( int disc, int start,