算法时间复杂度的笔记及其推论

在我们现在常用的时间复杂度记法常用大O记法来表示。另外在进行算法分析时,我们用语句被执行次数做关于问题规模的函数T(n)。一般情况下,随着n的不断增大,T(n)增长最慢的函数算法,我们成为最优算法。

在非官方中,我们给几种常见的算法复杂度命名:

1: 常数阶,example:O(1),执行了1次

2:线性阶,such as:O(n),执行了n次,(本人感觉就是关于一阶方程).

3:n方阶,like this:O(n^2),通常是关系到嵌套循环,这个就需要数学的数列的一些知识加以理解了.举个代码:

int i=0,j=0;

for(i=0;i<n;i++){

for(j=i;j<n;j++){}}

我们由这个代码可以知晓,它执行了n+n-1+n-2......=n^2/2+n/2,当n趋近于无穷时,可以认为就是等于n^2的复杂度.

4:对数方阶:我们用O(logn)来表示,代码举例

int count=1,i;

for(i=0;count<n;i++)

{count=count*2}

关于要cout乘以多少个2才能退出循环的代码,时间复杂度用O(logn)来表示.

小白第一天学数据结构,若有不足请加以理解,望指出

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值