程序时间复杂度的几种表示

来源:互联网 发布:网络代理兼职加盟 编辑:程序博客网 时间:2024/05/18 01:21

看《数据结构、算法与应用:C++语言描述》中讲到程序性能的时候涉及到了空间复杂度与时间复杂度。其中时间复杂度有多种表示:O、Ω、Θ、o,然后然后就蒙圈了,虽然书上讲的也比较详细但还是不够直接。

这样表示

时间复杂度
O:big-O————上界
Ω:big-Omega—–下界(很少用)
Θ:big-Theta——-确界

F(n) = Θ(n^2)的时候,意思是说“F(n)在渐进情况下不仅不会比n^2增长快,而且也不会比n^2增长慢”。

大家都习惯用大O呢,因为正常人在使用算法的时候不会考虑下界Ω的。另外,并不是所有算法都能轻松证明复杂度下界的。

知乎:
为什么见周围人描述算法复杂度都用大 O 符号而不是大 Θ?
https://www.zhihu.com/question/20677334

贴几张CSDN中容易理解的图片予以区别:

这里写图片描述

这里写图片描述

这里写图片描述

相关阅读:

几种排序以及其时间复杂度
http://blog.csdn.net/huoyunshen88/article/details/8063569

排序 类别 时间复杂度 空间复杂度 稳定与否

这里写图片描述
注意:这个表头错位了,第一栏为排序,第二栏为类别,第三栏为时间复杂度…

快速排序的时间复杂度的下界,平均,上界分别是Θn), Θ(n log n)和Θ(n^2)
快速求中位数的下界,平均,上界分别是Θ(n), Θ(n)和Θ(n^2)。

前三张图片摘自:
http://blog.csdn.net/xky1306102chenhong/article/details/49766811

原创粉丝点击