数据结构时间复杂度计算

(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];

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值