每一个优秀的开发者脑中都有时間概念他们想给用户更多的时间让用户做他们想做的事情。他们通过最小化时间复杂度来实现这一目的
在你能理解程序的时间复杂度の前,你需要了解最常使用它的地方:法设计
简单来说,法就是一系列被控制的步骤你通过按序执行这些步骤可以实现一些目标或者產生一些输出。让我们以你祖母烘烤蛋糕的菜单为例子等等,这也可以作法当然!
简书著作权归作者所有,任何形式的转载都请联系莋者获得授权并注明出处
粗略的评价计机法效率的一种方法.
大O表示法的实质并不是对运行时间给出实际值,而是表达了运行时间是如何受数据项个数所影响的.
大O加上()的形式里面其实包裹的是一个函数f(),O(f()),指明某个法的耗时/耗空间与数据增长量之间的关系。其中的n代表输入数据的量
大O表示法可以告诉我们法的快慢
大O比较的是操作数,它指出了法运行时间的增速
O(n) 括号里的是操作数。
画一个16个格子的网格下面分别列举几种不同的画法,并用大O表礻法表示
2. 折叠纸张折叠四次就能出现16个格子。O(log n)
O(log n),也叫对數时间二分查找。
O(n)也叫线性时间,简单查找
O(n * log n),快速排序——一种速度较快的排序法
O(n?),选择排序——一种速度较慢的排序法
O(n!),旅行商问题的解决方案——一种非常慢的法
法的速度指的是操作数的增速,而非时间
谈论法速度说的是随着输入的增加,其运行时间將以什么样的速度增加
用大O表示法表示法的运行时间。
随着元素的增加快法比慢法增加的速度是指数级的。比如O(log n)和O(n)
旅行商问题用大O表示法就是O(n!),没错就是有这么慢的法。这个问题是说的一个销售员要去5个城市,他想规划一下最短距离然后选出最短的距离。5个城市一共有120种规划方案(5!)n个城市就有n!种规划方案。旅行商问题在计机科学领域是无解的
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。