python 下的数据结构与算法---2:大O符号与常用算法和数据结构的复杂度速查表

算法复杂度详解
本文详细介绍了算法复杂度的大O记法,并对比了不同函数的增长速率。提供了常用算法和数据结构的时间复杂度速查表,解释了logn在二分查找等场景中的由来。

目录:

一:大O记法

二:各函数高阶比较

三:常用算法和数据结构的复杂度速查表

四:常见的logn是怎么来的

 

一:大O记法

算法复杂度记法有很多种,其中最常用的就是Big O notation(大O记法):

   

对于其中的g(x)是关于操作元素数x为自变量的计算次数函数,而x趋近无穷大从而只留下最高项且忽略其常数项是为了集中看函数随着元素个数的大量增加后运行时间的增加速度从而用来衡量时间复杂度。

e.g:

       for i in range(x):

              print(‘aha’)

              print(i)

       print(‘end’)

  则g(x)=2x+1,留下最高项2x,去掉常数项2,最后O(x)=x

  其他同理呐

 

二:各函数高阶比较

高阶就是函数图在第一象限更接近y轴的函数啦,常见的如下:

  O(1) < O(log n) < O(n) < O(n log n) < O(n2) < O(n3) < O(an)

 

三:常用算法和数据结构的复杂度速查表

  *能fanqiang的仁兄google:big O cheat sheet中的PDF就是,不能的见下图吧:

  

  

 

四:常见的logn是怎么来的

  由公式:logbn = logan / logab    (*)

   令c = 1/logab

   则(*):logb= c loga,而C可以省去

   故在如二分法等中的中的g(x)=Clog2n可以写成logn

 (即是b=2, a=10)

 

转载于:https://www.cnblogs.com/pengsixiong/p/5308919.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值