程 序 = 数据结构 + 算 法 ——沃思(Nikiklaus Wirth)
- 算 法
算法(Algorithm):解题方案的准确而完事的描述。(对操作的描述,即操作步骤。)
- 基本特征
- 有穷性(Finiteness)
一个算法应包含有限的操作步骤而不能是无限的。
eg:算法不可以的无限循环的。设x=0,循环x=x+1,结束条件是 x<0。 - 确定性(Definiteness)
算法中的操作都应是确定的,而不是含糊,模棱两可的。
每个步骤要有每个步骤的含义,要是十分明确无误的。 - 可行性(Effectiveness)
一个算法要可以有效地执行,即算法描述的每一步都可通过已实现的基本运算执行有限次来完成。 - 输入(Input)
在执行算法时需要从外界(用户)取得必要的信息。 - 输出 (Output)
算法的目地是为了求解,“解”就是输出。一个算法可以有一个或多个输出。没有输出的算法是没有意义的。
- 复杂度
设计一个算法时,要考虑到算法的 执行速度慢快(时间复杂度大小) 和 存储空间大小(空间复杂度大小)。
- 时间复杂度
指执行算法所需要的计算工作量。
…与所用的计算机、程序设计语言无关,而且与算法实现过程中的细节无关。算法的工作量用算法在执行过程中所需要的基本运算作为基本运算。 - 空间复杂度
指执行算法所需要的内存空间。
…一个算法所占用的存储空间包括 算法程序所占用的空间、输入的初始数据占用的存储空间、算法执行过程中所需要的额外空间(算法程序执行过程中的工作单元、某种数据结构所需要的附加存储空间)。