# 时间复杂度

## 是什么
算法的时间复杂度是一个函数，描述一个算法在问题规模不断增大时对应的时间增长曲线。
## 定义
算法中基本操作重复执行的次数是问题规模n的某个函数，用T(n)表示，若有某个辅助函数f(n)，使得当n趋近于无穷大时，T(n)/f(n)的极限值为不等于零的常数，则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n))，称O(f(n))为算法的渐进时间复杂度(O是数量级的符号 )，简称时间复杂度。

## 基本的计算步骤
**1. 计算出基本操作的执行次数T(n) **  
  基本操作即算法中的每条语句（以;号作为分割），语句的执行次数也叫做语句的频度。在做算法分析时，一般默认为考虑最坏的情况。

**2. 计算出T(n)的数量级 **  
  求T(n)的数量级，只要将T(n)进行如下一些操作：忽略常量、低次幂和最高次幂的系数。令f(n)=T(n)的数量级。

**3. 用大O来表示时间复杂度 **  
  当n趋近于无穷大时，如果limT(n)/f(n))的值为不等于0的常数，则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n))。

## 常见总结
![常见情况](https://pic1.zhimg.com/80/v2-a1387c0df75b3bc0fc81285efd0fed70_hd.jpg)
