算法的时间复杂度计算

计算算法的时间复杂度,通常说的是算法的渐进增长时间复杂度,也就是随着数据的变大,该算法所需要的时间是如何增长的。

推导时间复杂度的原则

  1. 用常数1取代运行事件中的所有加法常数。
  2. 在修改后的运行次数函数中,只保留最高阶数
  3. 如果最高阶项存在且不是1,则去除这个项相乘的常数。

有以下常见的时间复杂度。

1.常数阶
时间复杂度为O(1)
表示计算量不会随着数据的增长而增长

var i = 0;
console.log(i);

2.线性阶
时间复杂度为O(n)
表示计算量随着数据的增长而线性增长,增长量与数据增长几乎相同


for(let i=0;i<n;i++){
//时间复杂度为O(1)的运算
}

3.平方阶
时间复杂度为O(n^2)
表示计算量随着数据的增长而成平方增长


for(let i=0;i<n;i++){
   for(let j=0;j<n;j++{
   //时间复杂度为O(1)的运算
   }
}

4.对数阶
时间复杂度为O(logn)
表示随着数据n的线性递增,计算的递增是成次方递增;比如数据n每次加一,而计算的递增每次以二的次方增加,那么时间复杂度就会介于O(1)和O(n)之间

for(let i=1;i<n;i*=2){
    //时间复杂度为O(1)的运算
}

这里i第一次是2(2的1次方),第二次是2*2(2的2次方),第三次是4*2(2的3次方),可以看出每次增加的都是二的指数,那么假设时间复杂度为x,那么就能得出2^x=n;x=log2n;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 算法复杂度 时间复杂度 空间复杂度 什么是时间复杂度 算法执行时间需通过依据该算法编制的程序在计算机上运行时所消耗...
    KODIE阅读 3,420评论 0 9
  • 通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关...
    西域小码阅读 2,027评论 0 11
  • 算法的时间复杂度和空间复杂度-总结通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这...
    Explorer_Mi阅读 1,561评论 0 1
  • 什么是算法的复杂度 算法复杂度,即算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。 一个...
    儒生阅读 1,874评论 0 2
  • 回忆不触碰,但也不想删除,时间是最好的良药。
    柠檬丶丿阅读 241评论 0 0

友情链接更多精彩内容