时间复杂度、渐进记法、主定理

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

目录

一 、 大 O 记法 

二、Ω 记法。

三、 Θ记法

四、小o记法

五、命中缓存对时间效率的影响。

六、主定理


时间复杂度反应了一个程序的运行时间关于实例个数变化而变化规律。在一个排序程序中,可能比较了 2n 次,但是执行步数可能达到了 2n^3 ,就不能直接判定程序运行时间是 n 的线性函数。两个程序比较次数一个是3n,一个是2n 那么不能说前者的花费的时间就要更慢些,因为在总的执行步数上未必会比后者多。

当实例个数足够多的时候,计量时间的方法叫做渐进记法,最常用的是 O(g(x)) 表示。其他常用还有 o  , Ω , Θ 记法。

一 、 大 O 记法 

当实例个数n足够多时 ,程序执行总步数 f(n) = O(g(n)) 时满足 :

   \lim f(n)/g(n) <=C ,n \to \infty    

例如 当 程序执行步数为  f(n)= n^2+ 4log2 n     那么  f(n) = O(n^2) 成立, f(n) = O(n^3) 也成立。

二、Ω 记法。

当实例个数n足够多时 ,程序执行总步数 f(n) = Ω(g(n)) 时满足 :

   

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值