在对数软件开发中,什么是合理的算法可以降低计算的空间复杂度和时间复杂度? 有一个复杂度是logN,什么是logN毕业后的努力,工作几乎都忘了。
对数首先,logN称为对数,它是根据幂函数派生的。 例如,3=9可以理解为以log的3为底的9的对数等于2,乘以3等于9。 这里要乘以两个3,所以结果是2。
比较经典二分搜索法的时间复杂度,o(logn ) (以2为底),在反复方式的情况下时间复杂度为o ) n ),n是数据量的个数; 如果个数有100个,则可以假设1次查询需要1毫秒,二分搜索法中最差需要7毫秒,迭代法中最差需要100毫秒。 如果是10亿次呢? 二分搜索法最坏也需要30毫秒,迭代法最坏也需要277小时以上。 这样比较起来,还是算法好。
在平时的开发中设计算法时,很多情况下需要与业务密切相关,但是其他的排序和检索等合适的工具已经存在,对于更好地应用算法原理有很大的帮助。
附上《算法图解》的截图。
用计算机求出对数电脑中只有log(以10为底)和ln(以e为底),
根据换地式计算:求出以2为底8的对数时,log8%log2=3