栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

浙大数据结构与算法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

浙大数据结构与算法

时间复杂度与空间复杂度的分析:

时间复杂度:

if ( A > B )

{    

    for ( i=0; i

      for ( j=N*N; j>i; j-- )   

          A += B;

}

else {     

           for ( i=0; i

              for ( j=N*2; j>i; j-- )  

             A += B;

if内的循环体时间复杂度为:N^3;

else内循环体时间复杂度为: N^2;

浙大数据结构陈越老师的分而治之的思想求解最大子列和的问题:

时间复杂度:

求解时间复杂度要用到递归的思想:

T(n)  =  2 T(n / 2 )  + c*n; 将T(n / 2 ) 继续往下换:

T(n)  =  2( 2 T(n / 2^2) + c*n/2) +  c*n = 2^2T(n / 2^2) + c*2*n;

则归纳推理可知,当n / 2^k = 1 时, 

T(n)  = 2^k T(1) + c*k*n,  其中2^k = n ,得k = (log2 n);

则最终:

T(n)  = n + c*(log2 n)*n   = n*log n;

空间复杂度:

每次对该数据两边进行一次递归,都会把数据分成2半,知道每组数据都是1个则停止递归。可知递归k次将n个数据彻底分解。则有k =  log n;则调用了k次 “分”函数 , 则递归的空间复杂度为O(log n);

递归的最后结果是n个数据都被单独的函数调用了1次,可知函数调用了n次,则可知这个算法的整体的空间复杂度是S(n + log n) = S(n);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/665630.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号