1.概念
时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个函数,它定量的描述了该算法的运行时间。一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。但是我们需要每个算法都上机测试吗?是可以都这样搞,但是这很麻烦,所以才有了时间复杂度这一分析方式。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。
即:找到某条基本语句与问题规模N之间的数字表达式,就是算出了该算法的时间复杂度。
//请计算一下Func1中++count语句总共执行了多少次?
voidFunc1(int N)
{
int count = 0;
for (int i = 0;i < N; ++j)
{
for (int j = 0; j<N;++j)
{
++count;
}
}
for (int k = 0:k < 2 * N; ++k)
{
+=count;
}
int M =10;
while (M--)
{
++count;
}
F(N) = N^2+2*N+10 O(N^2)
F(N)=N+100 O(N)
F(N)=N^3+N O(N^3)