教培参考
教育培训行业知识型媒体
发布时间: 2024年11月27日 10:40
2020年计算机考研复习已经开始,在此整理了2020考研计算机备考:时间复杂度计算,希望能帮助大家!
算法的时间量度指的是算法中基本操作重复执行的次数。
一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记作T(n)=O(f(n)),通常称为时间复杂度,其中O的形式定义为:若f(n)是正整数n的一个函数,则xn=O(f(n))表示存在一个正的常数M,使得当n≥n0时都满足|xn|≤M|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)等。