符号定义
描述算法效率的符号说明。
Big-O(O)
求在最坏情况下的算法的时间复杂度,即复杂度(函数增长速度)的上界。
Big-Omega(Ω)
求在最好情况下的算法的时间复杂度,即复杂度(函数增长速度)的下界。
Big-Theta(Θ)
求算法的平均时间复杂度
Little-O()
与Big-O的差别是不含下边界
Little-Omega()
与Big-Omega的差别是不含上边界
O(n) means,
For at least one choice of a constant k > 0, you can find a constant a such that the inequality 0 <= f(x)<= k g(x) holds for all x > a.
o(n) means,
For every choice of a constant k > 0, you can find a constant a such that the inequality 0 <= f(x)< k g(x) holds for all x > a.
--------------------------------------------------
f = Ο(g) =====f≤g
f = Ω(g) =====f≥g
f = θ(g) =====f=g
f = o(g) =====f<g
f = ω(g) =====f>g
----------------------------------------------------
复杂度优劣比较
好----->不好
常数>对数>线性>nlogn>平方>立方>指数>阶乘
算法复杂度
---------------------------------------
这人说是面试的时候经常被问到(看来国内外是一样的哇),所以干脆搞了一个“小抄”造福大家。。
网站的链接我会附在最后
---------------------------------------
图片来源:
参考博文:
https://blog.youkuaiyun.com/xiaofei0859/article/details/77074028