DS笔记(1)算法的设计与度量

王朝other·作者佚名  2006-02-01
窄屏简体版  字體: |||超大  

l 算法设计的要求

1. 正确性(Correctness)

2. 可读性(Readablity)

3. 健壮性(Robustness)

4. 高时间效率与低存储量需求

l 算法时间效率的度量

1. 算法时间效率度量的基本做法

在算法中选取一种对于所研究问题来说是基本操作的原操作,以该基本操作重复执行的次数作为算法的时间度量。一般而言,这个基本操作是最深层循环内的语句中的原操作。

2. 算法语句频度与时间复杂度的关系

一般算法消耗的实际时间为算法中每条语句频度之和,是n的函数T(n)。当n趋于无穷大时,T(n)的同阶无穷小即是算法的时间复杂度,记为T(n)=O (f (n))。

例如:

for (i=1; i<=n; ++i)-------------------------- n+1

for (j=1; j<=n; ++j)--------------------- n×(n+1)

{

c[i][j] = 0;-------------------------- n­­2­

for (k=1; k<=n; ++k)------------------ n­­2×(n+1)

c[i][j] += a[i][k]*b[k][j];------- n3

}

总时间消耗:T(n)= 2n3+3n2+2n+1

时间复杂度:T(n)=O(n3)

l 算法存储空间的度量

1. 算法存储空间度量的基本做法

用程序执行中需要的辅助空间的消耗作为存储空间度量的依据,是问题规模n的函数。而程序执行中本身需要的工作单元不能算。

2. 算法空间复杂度

S(n)=O (f(n)) 称为算法的空间复杂度。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航