算法效率
作者:互联网
算法的效率
影响因素
- 算法采用的策略和方案
- 编译产生的代码质量
- 问题的输入规模
- 机器执行指令的速度
算法时间复杂度 T(N)
**T(N) = O(f(n))**
表示随着问题规模 n 的增大, 算法执行时间的增长率和 f(n) 的增长率相同,
称作算法的渐进时间复杂度, 简称时间复杂度
一般来讲, 随着输入规模 n 的增大, T(n) 增长最慢的算法为最优时间算法
推导攻略:
- 用常数 1 取代运行时间中的所有加法常数
- 在修改后的运行次数函数中, 只保留最高阶项
- 如果最高阶项存在且不是 1, 则去除与这个项相乘的常数
常见时间复杂度比较: O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
算法的空间复杂度 S(n)
S(n) = O(f(n))
n 为问题的规模, f(n) 为语句关于 n 所占存储空间的函数
通常 “时间复杂度” 用来来指运行时间的需求;
“空间复杂度” 用来指空间需求
标签:复杂度,规模,算法,时间,阶项,常数,效率 来源: https://www.cnblogs.com/white-boy/p/16221253.html