HTTP://WWW.FEP.COM.CN 福建教育出版社 计算机的应用已不再局限于科学计算,而更多地用于控制、管理和数据处理等非数值计算的处理工作。为了编写一个“好”的程序,必须分析待处理的对象特性以及各处理对象之间存在的关系。第二章 程序设计基本知识HTTP://WWW.FEP.COM.CN 福建教育出版社第 1 节 程序基本常识HTTP://WWW.FEP.COM.CN 福建教育出版社第第 11 节 程序基本常识节 程序基本常识1 .算法 算法是对特定问题求解步骤的一种描述,它是指令(规则)的有限序列,其中每一条指令表示一个或多个操作。简单地说,算法就是解决问题的操作步骤。一个算法必须满足以下五个重要的特征。① 有穷性 对于任意一组合法的输入值,算法的操作每个操作步骤都能在有限的时间内完成。这包括合理的执行时间的含义,如果一个算法执行耗费的时间太长,即使最终得出了结果,也是没有意义的。② 确定性 算法中的每一步都必须是有明确的定义,不允许有歧义性和多义性。确定性使算法的执行者或者阅读者能够明确其含义及如何执行,并且在任何条件下,算法都只有一条执行路径。③ 输入 — 个算法应该有 0 个或多个输入,以刻画运算对象的初始情况。所谓 0 个输入是指有的算法表面上可以没有输入,实际上已被嵌入算法之中。④ 输出 一个算法应该有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;⑤ 可行性 一个算法必须遵循特定条件下的解题规则,算法描述的每一个操作都应该是特定的解题规则中允许使用的、可执行的,并可以通过执行有限次来实现。 HTTP://WWW.FEP.COM.CN 福建教育出版社第第 11 节 程序基本常识节 程序基本常识2 .算法的复杂度 同一个问题可用不同的算法来解决,而算法质量的优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适的算法和改进算法。算法评价主要从时间复杂度和空间复杂度来考虑。① 时间复杂度 算法的时间复杂度( Time Complexity )是指算法所需要的计算工作量,用算法所执行的基本运算次数来度量。常见的时间复杂度有:常数阶 O(1) ,对数阶 O(log2n) ,线性阶 O(n),线性对数阶 O(nlog2n) ,平方阶 O(n2) ,立方阶 O(n3) ,……,指数阶 O(2n) 。随着问题规模 n 的不断增大,上述时间复杂度不断增大,算法的执行效率就越低。② 空间复杂度 算法的空间复杂度( Space Complexity )是指执行这个算法所需要的内存空间。算法执行...