引言——增长的阶
在算法问题中,我们难免会被问到一个问题,这个算法究竟好不好?
首先,尽管时代在发展,计算机的运算速度和内存在不断增大,但是我们面对的数据量也在不断增加,盲目使用不好的算法有时也能解决问题,但绝不是一个合适的方法。所以我们就有了算法时间空间复杂度分析的问题。
一个算法耗时多少,很简单么,就把每一步加起来,如果是循环就相乘,问题不就解决了?
但是在解决求和的过程中,我们还是会遇到很多问题的,而且一个级数放在那给别人看着也不方便,所以我们选择了一种表示方式。
时间复杂度的表示方法
因为我们只是一个简单的分析,而不是一个数学家在一丝不苟的对自己的一串数据进行求和,所以我们的原则是只考虑最高阶,并且忽略系数。因为一般实际应用中计算机处理的数据量是很大的,在高数中当n->∞,这时低阶就几乎失去作用。
首先是θ的概念:
注意其中n0的选择,并不是直接从
如果用一张图画出c1g(n)、c2g(n)和f(n):
通俗来说,就是一个紧界,g(n) f(n)是同阶的两