算法的时间量度指的是算法中基本操作重复执行的次数。
一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记作T(n)=O(f(n)),通常称为时间复杂度,其中O的形式定义为:若f(n)是正整数n的一个函数,则xn=O(f(n))表示存在一个正的常数M,使得当n&gen0时都满足|xn|&leM|f(n)|。
注意:基本操作是其重复执行的次数和算法的执行时间成正比的原操作,多数情况下它是最深层循环内的语句中的原操作,它的执行次数和包含它的语句的频度是相同的。语句的频度指的是该语句重复执行的次数。
计算时间复杂度关键的基本操作。例如,在下列3个程序段中:
(1)++x s=0
(2)for (i =1 i <=n ++i) ++x s+=x
(3)for (j =1 j<=n ++j)
for (k =1 k<=n ++k) ++x s+=x
含基本操作“x增1”的语句的频度分别为1、n和n2,则这3个程序段的时间复杂度分别为O(1)、O(n)和O(n2)。算法还可能呈现的时间复杂度有对数阶O(log2n)、指数阶O(2n)等。
备考过程中,你可能很努力却还收效甚微,但我们要记住,量变坚持下去才会形成质变。星光不问赶路人,时光不负有心人。你的坚持,终将美好。