(1)FOR循环
一次for循环的运行时间至多是该for循环内语句的运行时间乘以迭代次数。
(2)嵌套的FOR循环
肯定是计算最内层循环语句的执行次数,然后再乘以所以循环的迭代次数。
(3)整个程序
其实找到循环迭代次数最多,嵌套最多的进行计算就好。
3、当然,我们计算的只是大概值,而且为了计算的简便,我们一边进行适当的放大,即只考虑最坏最坏的情况,算出其时间复杂度即可。
二、最大子序列
书中通过4种不同的解法来进一步强化我们应该如何计算时间复杂度,小白我也好好学习了下,在此写下学习笔记。
题目:算出一个整数序列中最大的子序列的值。
算法一:
int MaxSubsequenceSum1(const int A[],int N)
{
int thisSum , MaxSum;
MaxSum=0;
for (int i =0; i<N; i++)
{
for (int j=i; j<N; j++)
{
thisSum=0;
for (int K =i; K<=j; K++)
{
thisSum+=A[K];
}
if(thisSum>MaxSum)
{
MaxSum=thisSum;
}
}
}
if(MaxSum==0)
{
int i;
for(i=0;i<N;i++)
{
if(A[i]!=0)
break;
}
if(i!=N)
{
int Max=A[0];
for(int j=0;j<N;j++)
{
if(A[j]>Max)
{
Max=A[j];
}