算法复杂度小记
来源:互联网 发布:网络弊大于利三辩提问 编辑:程序博客网 时间:2024/06/13 22:22
本文主要书写了本人对于算法复杂度的一些理解,并辅以一些例子进行说明
算法复杂度的概念
复杂度的计算理念
- 我们不对某个算法进行精确的分析,只需要初略地知道它的增长趋势就可以了。
- 平常我们分析算法复杂度的时候,通常有分析最坏情况和平均情况两种选项,由于最坏情况易于分析,所以我们一般分析算法复杂度的最坏情况。
复杂度的渐进表示法
- 上界
上述式子表示当N足够大的时候,f(n)
函数是T(n)
的上界。
- 下界
上述式子表示当N足够大的时候,h(n)
函数是T(n)
的下界。
- 上界和下界同时成立
上述式子表示当N足够大的时候,g(n)
函数同时是T(n)
的上界和下界。
- 在上面三个式子中,
T(n)
表示的都是某个算法的时间复杂度,它们也可以应用在算法的空间复杂度S(n)
上。 - 一个算法的上界和下界函数可能有无穷多个,为了和现实的情况更贴合,我们在使用上述式子表示算法的复杂度的时候,通常使用最小的上界和最大的下界。
复杂度的增长趋势比较
复杂度计算理念的进一步说明
由于我们分析算法复杂度的时候主要是分析它的增长趋势,所以我们只需要分析算法复杂度的某个主要趋势即可。
例一
有时间复杂度计算公式,
在N进行增长的时候,T(n)
增长的影响是远远大于
或者记做
即当
N
很大的时候,T(n)
的上界函数。例二
当我们谈论时间复杂度e
为底的。这是因为当N很大的时候,
复杂度分析小窍门
有两个时间复杂度T1
和T2
,
根据公式1,我们可以得到当T(n)
是关于n的k阶多项式的时候,
于是可得:
一个for循环的复杂度 = 循环体的复杂度 * 循环次数
一个if-else的复杂度 = max(条件判断式的复杂度,if分支的复杂度,else分支的复杂度)
阅读全文
0 0
- 算法复杂度小记
- 算法复杂度
- 算法复杂度
- 算法复杂度
- 算法复杂度
- 算法复杂度
- 算法复杂度
- 算法复杂度
- 算法复杂度
- 算法复杂度
- 算法复杂度
- 算法复杂度
- 算法复杂度
- 算法复杂度
- 算法复杂度
- 算法复杂度
- 算法复杂度
- 算法复杂度
- Codeforces Round #340 (Div. 2) E
- UIGUI创建列表功能几个重要脚本
- gdb调试
- Android EditText 监听回车键
- Java:从键盘获取3个整型数据
- 算法复杂度小记
- 银行排队问题之单队列多窗口加VIP服务(30 分)
- LinkedList
- H264 推流到RTMP服务器
- python MapReduce单词统计
- 脑电波实时数据收集——RDA—数据包定义
- 常见的几种矩阵分解方式
- 混合背包
- 中国国内采购平台大全