a*算法的时间复杂度_一个视频教会你算法的时间复杂度

时间复杂度及表示法

算法的时间复杂度用大O表示法。

下面将以python语法示例

O(n)示例:

def test(num);

       total = 0

       for i in range(num);

              total+=i

       retuen total

因为这里total=0是常数,而total+=i被执行num次,即那么total+=i可以看作bnum可以看作n,即是nb,所以就是O(n).

O(1)示例:

def o1(num);

       i = num

       j = num*2

       return i+j

因为这里不存在循环,都是常数,所以就算O(1)

O(logN)示例:

def oLogN(num);

       i = 1

       while (i

              i = i*2

       return i

因为这里i终止的条件是i*2*2*2…,那么就是要求i乘以多个2,即2的多少次方,所以这里就是log n

O(m+n)示例:

def OMN(num1,num2);

       total = 0

       for i in range(num1);

              total +=i

       for j in range(num2);

              total +=j

       return total

这个就很简单了,两个for循环而已

O(nlogn)示例:

def ONLOGN(num1,num2);

       total = 0

       j = 0

       for i in range(num1);

              while(j < num2);

                     total += i + j

                     j = j * 2

       return total

这个结合上面O(n)O(logn)也就不难理解了。

O(n2)示例:

def ON2(num);

       total = 0

       for i in range(num);

              for j in range(num);

                     total += i + j

       return total

这个结合上面O(n)也就不难理解了。

时间复杂度对比:

c4ef4c20711fa24aa3da3146f5984573.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值