数据结构与算法-复杂度分析

数据结构和算法本身要解决程序 运行“快”,空间“省”的问题

执行效率是一个重要的考核标准

主要看时间、空间复杂度分析

时间复杂度分析 (大0复杂度表示法)

int cal (int n){

  int a = 0 ;

  int i=0 ;

  for (;i<=n;i++)

  {

    a = a + i;

  }

  return  a;

}

假设 每行执行的时间为unittime ;  则上述代码执行的时间为 T (n) = (1+1+n+n+1)*unittime = (2n+3)*unittime 

再复杂一些代码分析方法也是一样,所以代码执行时间T(n)与每行代码执行的次数成正比

1、只关注循环执行次数最大的代码

2、总复杂度等于量级最大的那段代码复杂度

3、嵌套代码的复杂度等于嵌套内外代码复杂度的乘积

常见的复杂度量级:

O(1),O(n),O(logn),O(nlogn),O(n2),O(n!), O(2n)

i = 1;

while (i <=n){

  i = i * 2;

}

执行次数 : 类似等比数列, 2的0次方 + 2的一次方+2的二次方+.....2的X次方= n 

求x = logn

猜你喜欢

转载自www.cnblogs.com/yingchen/p/9747642.html