美文网首页
时间复杂度计算

时间复杂度计算

作者: 蜗牛滴追逐 | 来源:发表于2018-08-31 09:59 被阅读0次

1 时间复杂度概述
当一个程序产生的时候,就自然而然产生了执行时间,我们不可能每次都去一个一个运行进行比较。于是一种省时省力的方法产生了,这就是时间复杂度的来源。总的来说:
时间复杂度简化了我们的比较方法。
2 时间复杂度计算
时间复杂度与执行次数有关。于是流程为:
1.找出所有语句的频度并组成执行次数T(n)
2.T(n)的数量级,忽略常量、低次幂和最高次幂的系数,f(n)=T(n)的数量级
3.T(n)=O(f(n))
举例:
int num1, num2;
for(int i=0; i<n; i++){
num1 += 1;
for(int j=1; j<=n; j=2){
num2 += num1;
}
}
1.语句int num1, num2;的频度为1;
语句i=0;的频度为1;
语句i<n; i++; num1+=1; j=1; 的频度为n;
语句j<=n; j=2; num2+=num1;的频度为n
log2(n)
(为什么会出现log2(n)呢?是因为循环x次,j=2^x ,当j=n时停止循环,就是2^x=n则有log2(n)=x时停止 ,即循环次数为log2(n)。)
T(n) = 2 + 4n + 3nlog2n
2.忽略掉T(n)中的常量、低次幂和最高次幂的系数。
f(n) = n
logn
3.代入公式
T(n) =O(f(n))= O(n
logn)
3.时间复杂度比较
常数阶O(1), 对数阶O(logn), 线性阶O(n), 线性对数阶O(nlogn), 平方阶O(n^2), 立方阶O(n^3),..., k次方阶O(n^k), 指数阶O(2^n) 。
Ο(1)<Ο(logn)<Ο(n)<Ο(nlogn)<Ο(n2)<Ο(n3)<…<Ο(2^n)和Ο(n!)
一些大小需要根据问题的规模n来进行判断。
Ο(1)表示基本语句的执行次数是一个常数。
O(logn)、Ο(n)、Ο(nlog2n)、Ο(n2)和Ο(n3)称为多项式时间。
Ο(2n)和Ο(n!)称为指数时间。(它们的大小和n有关。)

作者:KaelQ
链接:https://www.jianshu.com/p/d0e1e740310f
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

相关文章

  • 算法初步

    时间复杂度 时间复杂度是用来估计算法运行时间的式子(单位)。 时间复杂度小结 空间复杂度 用来计算一个算法临时占用...

  • 数据结构与算法 - 时间复杂度与空间复杂度

    前言 时间复杂度:时间复杂度的计算并不是计算程序具体运行的时间,而是算法执行语句的最大次数。空间复杂度:类似于时间...

  • 【草稿】时间复杂度如何计算

    如何计算时间复杂度 排序法

  • 算法复杂度

    算法的复杂度是以什么来度量的? 算法的复杂度是以时间复杂度和空间复杂度来计算的。 ①算法的时间复杂度 ...

  • 二叉平衡树算法的时间复杂度

    我们在计算时间复杂度的过程中,查找单个元素总是会出现的时间复杂度,这个时间复杂度如何计算得来的?我们在二叉平衡树中...

  • 排序算法汇总

    简单来说,时间复杂度指的是语句执行次数,空间复杂度指的是算法所占的存储空间 时间复杂度计算时间复杂度的方法: 用常...

  • 时间复杂度计算

    循环次数次(操作次数) 取量级 循环次数T(n)量级函数f(n):1,n,log2n,nlog2n,n2,n3,n...

  • 时间复杂度计算

    1 时间复杂度概述当一个程序产生的时候,就自然而然产生了执行时间,我们不可能每次都去一个一个运行进行比较。于是一种...

  • 时间复杂度计算

    排序法 |:--:|:--:|:--:|:--:|:--:||最差时间分析| 平均时间复杂度|稳定度|空间复...

  • 时间复杂度计算

    算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大...

网友评论

      本文标题:时间复杂度计算

      本文链接:https://www.haomeiwen.com/subject/qhxswftx.html