算法时间复杂度
算法概述
- 定义:解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
- 特性:
- 输入输出
- 有穷性
- 确定性
- 可行性
- 设计时的要求:
- 正确性
- 可读性
- 健壮性
- 时间效率高和存储量低
算法效率的度量方法-大O记时法
评估算法性能,主要评估问题的输入规模n与元素的访问次数f(n)的关系
- f(n)=n
- f(n)=n²
大O的记时法:就是通过估算得到代码运行后的时间,即估计此代码的时间复杂度。这样可以判断出我们写出的代码是否高效~。
大O符号,忽略主体部分,如常数项、低阶项等等。只和主体函数有关。
- O(n²)=2n²+n+5
- O(n²)=n²
例1
在这个for循环里,设k=k+5这步执行的时间为t秒,
那这个循环执行的时间就为n个t秒。
所以这个循环的时间复杂度就为O(n)
for(int i=