O时最大的上界;找到Ω
Ω时最小的下界 。
下面三张图表示算法复杂度为不同函数时对应的耗时:
文章插图
文章插图
文章插图
综上:一个专业的程序,设计了一个O(N
2
)
O(N2)的算法,应该本能的想到是否能把他改进为O(Nlog
N
)
O(NlogN)的算法 。
算法复杂度分析小窍门
- 若两段算法分别有复杂度T
- 1
- (n)=O(f
- 1
- (n))
- T1(n)=O(f1(n))和T
- 2
- (n)=O(f
- 2
- (n))
- T2(n)=O(f2(n)),则
- T
- 1
- (n)+T
- 2
- (n))=max(O(f
- 1
- (n)),O(f
- 2
- (n)))
- T1(n)+T2(n))=max(O(f1(n)),O(f2(n)))
- T
- 1
- (n)×T
- 2
- (n))=max(O(f
- 1
- (n)×f
- 2
- (n))
- T1(n)×T2(n))=max(O(f1(n)×f2(n))
- 若T(n)
- T(n)是关于n
- n的k
- k阶多项式,那么T(n)=Θ(n
- k
- )
- T(n)=Θ(nk)
- 一个for循环的时间复杂度等于循环次数乘以循环体代码的复杂度
- if-else结构的复杂度取决于if的条件判断复杂度和两个分支部分的复杂度,总体复杂度取三者中最大
推荐阅读
- BloomFilter算法知识点
- 杨梅是什么时候熟的 四月份杨梅熟了没
- 巨龙竹最大直径 世界上最大的竹子是什么竹
- 梦见遇见结婚是什么意思 梦见遇见结婚的
- 梦见人死了满地是血是什么意思 梦见死人了还有满地血
- 三本是什么意思
- 非典是什么时候发生的
- 正时皮带与正时链条的作用是什么?哪种更好呢
- 汽车继电器是什么?汽车继电器介绍
- 月饼变质是什么味道 月饼有哈喇味什么原因