- 7
- 0
- 约2.1千字
- 约 5页
- 2021-03-25 发布于天津
- 举报
学习程序算法的一个总要目标就是学会判断程序性能的优劣。 当然判
断的标准有很多,至少包括如下几点:
程序是否符合任务的规范说明。
程序是否正确。
是否有配套文档,说明程序的用法和原理。
程序是否根据逻辑关系分解成能有效执行的函数。
程序代码是否易读。
以上判据至关重要,对构建大规模程序系统,显得更为关键。然而若 要指出上述标准却并非易事。除了上述一般性判据之外,以下两条判 据更加具体。
程序是否能够高效使用主存和辅存。
程序的运行时间是否令人满意
最后这两条可以分两方面来讨论:第一方面的性能估计与机器无关, 来推断程序的空间代价和时间代价, 称为性能分析;第二方面称为性 能度量,即获取程序在真实环境的实际运行时间。
定义 空间复杂度是程序运行所需的存储空间;时间复杂度是程序的 运行时间。
空间复杂度
程序运行所需空间包括两部分:
定长空间需求:即与程序输入、输出无关的空间。
变长空间需求:即与求解的问题实例相关的结构化变量所占的空间 大小。如果是递归程序,还应加上递归时所需工作空间的大小。
任何程序所需的空间大小就是上述两块空间的总和。 但分析一个程序 的空间复杂度,通常仅仅考察变长空间需求。
看下面例子:
代码1:
float abc(float a, float b,float c)
{
retur n a+b+b*c+(a+b-c)/(a+b)+4.00;
}
函数abc的输
原创力文档

文档评论(0)