简单复杂度分析

1、简单时间复杂度分析

(1)时间复杂度表示方式

       O(1),O(n),O(lgn),O(nlogn),O(n^2)

 

(2)大O简单定义(非数学领域)

       大O描述的是算法运行时间和输入数据之间的关系

 

(3)简单程序时间复杂度分析

简单复杂度分析

既然算法和N呈线性关系,为什么要用大O,叫做O(n)?

忽略常数。实际时间复杂度:T = c1*n + c2;

简单复杂度分析

算法和N呈线性相关,取n的高阶项,因为当n趋于无穷大的时候,低阶项起的作用很小。

 

2、分析动态数组的时间复杂度

(1)动态数组添加操作时间复杂度分析

简单复杂度分析

(2)动态数组删除操作时间复杂度分析

简单复杂度分析

 

(3)动态数组修改操作时间复杂度分析

      set(index, e)  O(1)
 

(4)动态数组查找操作时间复杂度分析

      get(index)     O(1)

      contains(e)    O(n)

      find(e)      O(n)

 

(5)动态数组时间复杂度分析总结

简单复杂度分析

如果感兴趣的童鞋,可以观看我下一篇博客:均摊复杂度和防止复杂度的震荡