复杂度

复杂度

复杂度是衡量代码运行效率的重要的度量因素,复杂度通常包括时间复杂度和空间复杂度

复杂度特性:

  • 复杂度与具体的常系数无关
  • 多项式级的复杂度相加的时候,选择高者作为结果
  • O(1) 也是表示一个特殊复杂度, 与输入数据量n无关

复杂度的经验结论

  • 一个顺序结构的代码,时间复杂度是O(1)
  • 二分查找,或者更通用地说是采用分而治之的二分策略,时间复杂度是O(logn).
  • 一个简单的for循环,时间复杂度是O(n)
  • 两个顺序执行的for循环,时间复杂度是O(n)+O(n)=O(2n),其实也是O(n)
  • 两个嵌套的for循环, 时间复杂度是O(n2)

总结

时间复杂度与«代码的结构设计»高度相关
空间复杂度与«数据结构的选择»高度相关