美文网首页
时间复杂度

时间复杂度

作者: 思了个麦 | 来源:发表于2016-12-05 17:42 被阅读0次

什么是时间复杂度

在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。

T(n)=O(f(n))

一个算法中的语句执行次数称为语句频度或时间频度。T(n)表示算法中的语句执行次数,‘;’代表一个语句结束。

忽略掉T(n)中的常量、低次幂和最高次幂的系数,则为f(n)

当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。

我们常常看到别人描述说,冒泡算法的时间复杂度是O(n2),那么O(n2)是怎么的出来的呢?

怎么计算时间复杂度

我们就用冒泡排序算法作为例子,来计算下时间复杂度

function bubbleSort(arr) {    
    var i=arr.length, j;                             
    var tempExchangVal;                           
    while (i > 0) {                              
      for (j = 0; j < i - 1; j++) {          
          if (arr[j] > arr[j + 1]) {                
           tempExchangVal = arr[j]; 
             arr[j] = arr[j + 1]; 
             arr[j + 1] = tempExchangVal; 
         }
        }
        i--;
    }
    return arr;
}
语句 执行次数
var i, j; 1
var tempExchangVal; 1
i > 0 n
j = 0; n
j < i - 1; j++ n(n-1)/2
arr[j] > arr[j + 1] n(n-1)/2
tempExchangVal = arr[j]; n(n-1)/2
arr[j] = arr[j + 1]; n(n-1)/2
arr[j + 1] = tempExchangVal; n(n-1)/2

所以这个算法总共执行了2+2n+5n(n-1)/2次

T(n) = 2+2n+5n(n-1)/2;
忽略掉T(n)中的常量、低次幂和最高次幂的系数,则为f(n)
f(n) = n^2

T(n)/f(n) = (2- 3n + 5/2 n^2 ) / n^2
当n趋向无穷大时,T(n) / f(n)是5/2,为不等于零的常数,则称f(n)是T(n)的同数量级函数。
T(n)=O(f(n))
所以时间复杂度为O(f(n)) = O(n^2 )

相关文章

  • 时间复杂度(下)

    时间复杂度知识点 最好时间复杂度 最坏时间复杂度 平均情况复杂度 均摊时间复杂度

  • day02 四种时间复杂度分析方法

    一、时间复杂度有哪几种? 最好时间复杂度 最坏时间复杂度 平均时间复杂度(概率) 均摊时间复杂度(特殊的平均时间复...

  • 数据结构与算法之美笔记——复杂度分析(下)

    摘要: 时间复杂度还可分为四种,分别是「最好时间复杂度」、「最坏时间复杂度」、「平均时间复杂度」和「均摊时间复杂度...

  • 算法学习笔记-浅析时间复杂度

    四种情况的维度: 最好情况时间复杂度 最坏情况时间复杂度 平均情况时间复杂度 均摊时间复杂度 最好时间复杂度 在最...

  • sort_algorithm

    排序方法 时间复杂度(平均) 时间复杂度(最坏) 时间复杂度(最好) 空间复杂度 稳定性 复...

  • 归并排序图解

    平均时间复杂度:O(nlogn) 最佳时间复杂度:O(n) 最差时间复杂度:O(nlogn) 空间复杂度:O(n)...

  • 时间复杂度和空间复杂度笔记

    复杂度分析笔记 复杂度主要分为时间和空间复杂度 时间复杂度:算法(程序)执行的时间变化趋势 空间复杂度:算法(程序...

  • 归并排序 by Python

    最好时间复杂度:O(n*logn)最坏时间复杂度:O(n*logn)平均时间复杂度:O(n*logn)空间复杂度:...

  • day09-冒泡排序+优化

    排序算法(SortAlgorithm) 算法时间复杂度总结: 排序方法时间复杂度(平均)时间复杂度(最坏)时间复杂...

  • 时间复杂度和空间复杂度

    时间复杂度 如何理解算法时间复杂度 1.时间复杂度,表示形式为Big O notation 时间复杂度也可以理解为...

网友评论

      本文标题:时间复杂度

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