实验题2:常见算法时间函数的增长趋势分析

目的:理解常见算法时间函数的增长情况,

内容:编写一个函数exp1-2.cpp,对于1-n的每个整数n,输出log_{2}n,\sqrt{n}、n 、nlog_{2}n,n,nlog_{2}nn^{2},n^{3},2^{n},n!的值

//文件名:exp1-2.cpp
#include 
#include 
double log2(double x)	//求log2(x)
{
	return log10(x)/log10(2);
}
long exponent(int n)	//求2^n
{
	long s=1;
	for (int i=1;i<=n;i++)
		s*=2;
	return s;
}
long factorial(int n)	//求n!
{
	long s=1;
	for (int i=1;i<=n;i++)
		s*=i;
	return s;
}
void fun(int n)
{
	printf("log2(n) sqrt(n)  n       nlog2(n)   n^2	    n^3	     2^n		n!\n");
	printf("===========================================================================\n");
	for (int i=1;i<=n;i++)
	{
		printf("%5.2f\t",log2(double(i)));
		printf("%5.2f\t",sqrt(i));
		printf("%2d\t",i);
		printf("%7.2f\t",i*log2(double(i)));
		printf("%5d\t",i*i);
		printf("%7d\t",i*i*i);
		printf("%8d\t",exponent(i));
		printf("%10d\n",factorial(i));
	}
}
int main()
{
	int n=10;
	fun(n);
	return 1;
}

结果:

实验题2:常见算法时间函数的增长趋势分析_第1张图片

你可能感兴趣的:(编程)