ZKX's LAB

如何对一个程序进行算法分析?时间复杂度怎么算? 如何分析空间复杂度

2020-10-01知识6

如何计算时间复杂度 1、先找出算法的基本2113操作,然后根据相5261应的各语句确定它的4102执行次数,再找出T(n)的同数量级(它1653的同数量级有以下:1,Log2n,n,nLog2n,n的平方,n的三次方,2的n次方,n!找出后,f(n)=该数量级,若T(n)/f(n)求极限可得到一常数c,则时间复杂度T(n)=O(f(n))。2、举例for(i=1;i;i){ for(j=1;j;j){ c[i][j]=0;该步骤属于基本操作 执行次数:n的平方次for(k=1;k;k)c[i][j]+a[i][k]*b[k][j];该步骤属于基本操作 执行次数:n的三次方次 } }则有 T(n)=n的平方+n的三次方,根据上面括号里的同数量级,我们可以确定 n的三次方为T(n)的同数量级则有f(n)=n的三次方,然后根据T(n)/f(n)求极限可得到常数c则该算法的 时间复杂度:T(n)=O(n的三次方)扩展资料分类按数量级递增排列,常见的时间复杂度有:常数阶O(1),对数阶O(),线性阶O(n),线性对数阶O(nlog2n),平方阶O(n^2),立方阶O(n^3),.,k次方阶O(n^k),指数阶O(2^n)。随着问题规模n的不断增大,上述时间复杂度不断增大,算法的执行效率越低。关于对其的理解《数据结构(C语言版)》-严蔚敏 吴伟民编著 第15页有句话“整个算法的执行时间与基本操作重复执行的次数成。

如何对一个程序进行算法分析?时间复杂度怎么算? 如何分析空间复杂度

如何清晰的理解算法中的时间复杂度? 算法时间复杂度用来度量算法执行时间的多少,用大O阶表示,即T(n)=O(f(n)),其中n为问题规模,也就是问题…

如何对一个程序进行算法分析?时间复杂度怎么算? 如何分析空间复杂度

如何对一个程序进行算法分析?时间复杂度怎么算? 算法的复杂性算法的复杂性是算法效率的度量,是评价算法优劣的重要依据。一个算法的复杂性的高低体现在运行该算法所需要的计算机资源的多少上面,所需的资源越多,我们就说该算法的复杂性越高;反之,所需的资源越低,则该算法的复杂性越低。计算机的资源,最重要的是时间和空间(即存储器)资源。因而,算法的复杂性有时间复杂性和空间复杂性之分。不言而喻,对于任意给定的问题,设计出复杂性尽可能低的算法是我们在设计算法时追求的一个重要目标;另一方面,当给定的问题已有多种算法时,选择其中复杂性最低者,是我们在选用算法适应遵循的一个重要准则。因此,算法的复杂性分析对算法的设计或选用有着重要的指导意义和实用价值。简言之,在算法学习过程中,我们必须首先学会对算法的分析,以确定或判断算法的优劣。1.时间复杂性:例1:设一程序段如下(为讨论方便,每行前加一行号)(1)for i:=1 to n do(2)for j:=1 to n do(3)x:=x+1试问在程序运行中各步执行的次数各为多少?解答:行号 次数(频度)(1)n+1(2)n*(n+1)(3)n*n可见,这段程序总的执行次数是:f(n)=2n2+2n+1。在这里,n可以表示问题的规模,当n趋向无穷大时,如果 f(n)的值很小,则算法优。

如何对一个程序进行算法分析?时间复杂度怎么算? 如何分析空间复杂度

如何分析时间复杂度(线性表)

#时间计算#时间复杂度

随机阅读

qrcode
访问手机版