目录
时间复杂度反应了一个程序的运行时间关于实例个数变化而变化规律。在一个排序程序中,可能比较了 2n 次,但是执行步数可能达到了 2n^3 ,就不能直接判定程序运行时间是 n 的线性函数。两个程序比较次数一个是3n,一个是2n 那么不能说前者的花费的时间就要更慢些,因为在总的执行步数上未必会比后者多。
当实例个数足够多的时候,计量时间的方法叫做渐进记法,最常用的是 O(g(x)) 表示。其他常用还有 o , Ω , Θ 记法。
一 、 大 O 记法
当实例个数n足够多时 ,程序执行总步数 f(n) = O(g(n)) 时满足 :
例如 当 程序执行步数为 f(n)= n^2+ 4log2 n 那么 f(n) = O(n^2) 成立, f(n) = O(n^3) 也成立。
二、Ω 记法。
当实例个数n足够多时 ,程序执行总步数 f(n) = Ω(g(n)) 时满足 :

博客介绍了C++中时间复杂度相关知识。时间复杂度反映程序运行时间随实例个数的变化规律,常用渐近记法衡量,如大O、Ω、Θ、小o记法。还阐述了命中缓存对时间效率的影响,因缓存读取效率不同,相同执行步数耗时可能不同,此外提及了主定理。
最低0.47元/天 解锁文章
2313

被折叠的 条评论
为什么被折叠?



