Day 12, Coursera-Algorithm toolbox- Big O 时间複杂度

Big O 时间複杂度

一个用来思考,这个演算法能否快狠準计算完成的好工具,有别于刚开始学程式的人,先能做出程式来用,就能欢天喜地,开心好几天,知晓Big O之后,世界就不再那么单纯了,而那纯粹的快乐也渐渐离我们远去... ...,就好像离开童年的单纯岁月一样,你,如果可以,还会想要回到小时候吗? 当然,不要。大人有选择生活的能力,小孩才没有。
时间複杂度是个粗估运作时间的好方法,为甚么说粗估呢?

举个例子,如果你有一个公式:

100n^3+2n+2
我们会说,该公式的时间複杂度是O(n^3)

如果是

99999999999n+1
我们会说,该公式的时间複杂度是O(n)
藉由时间複杂度,我们能忽略电脑计算性能、记忆体配置大小等问题,就纯粹从演算法公式来估算、比较花费时间,当输入数字变的庞大时,在同单位时间数下,时间複杂度显现的影响就更加震撼。
http://img2.58codes.com/2024/20149573Xr2k9XdQlP.png
图片来源自维基百科
举我从Day9~Day10之间的公式,两者都是找出最大相乘数,然而一个会造成time limit exceed,一个却依然能快速算出正确数值,这就归功于从时间複杂度角度的思考,若使用双迴圈,会造成时间複杂度为O(n^2),若只使用单迴圈,就是O(n)。很明显的,O(n)所花费的时间较少,我们就谈到这。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章