简单复杂度分析
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)动态数组时间复杂度分析总结
如果感兴趣的童鞋,可以观看我下一篇博客:均摊复杂度和防止复杂度的震荡