算法中的时间复杂度logN

什么是对数


软件开发中通过合理的算法能减小计算的空间复杂度和时间复杂度,有的复杂度为logN,什么是logN?通过毕业后的努力工作基本都忘了。

对数


首先,logN被称为对数,是在幂函数的基础上衍生的。例如:3²=9,可以得到log以3为底的9的对数等于2,可以理解为3相乘等于9,这里是两个3相乘,所以结果就是2。

比较经典的二分查找法的时间复杂度就是O(logN)(以2为底),若是用迭代的方式时间复杂度是O(N),N是数据量的个数;我们可以假设若是个数有100个,每一次查询的时间用1毫秒,二分查找法最坏需要查询7毫秒,用迭代法最坏需要100毫秒。若是10亿次呢?二分查找法最坏只需要30毫秒,迭代法最坏需要277多个小时,这样一比较,高下立判,还是算法好。

平时开发中设计算法的时候大多是需要和业务强相关的场景,其他的例如排序和查找都已经有合适的工具类了,为了更好的应用指导算法原理是大有裨益的。

附一张《算法图解》中的截图。

电脑中计算机求对数


电脑中只有log(以10为底)和ln(以e为底),

根据换地公式计算:求以2为底8的对数,可以log8%log2=3



                        
原文链接:https://blog.csdn.net/zhanwuguo8346/article/details/118499545

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值