数据结构与算法回顾
算法与算法分析(一)
-
算法的定义
- 对特定问题求解方法额步骤的一种描述,它是指令的有限序列。其中每个指令代表一个或多个操作。 算法与程序
- 算法是解决问题的一种方法或一个过程,考虑如何将输入转化为输出,一个问题可以有多个算法。
- 程序使用某种程序设计语言对算法的具体实现。程序=数据结构+算法 算法特性
- 有穷性:一个算法必须总是在执行有穷步之后结束,且每步都在有穷时间内完成。
- 确定性:算法的每一条指令必须有确切的含义,没有二义性,在任何条件下,只有唯一一条执行路径,且对于相同的输入只能得到相同的输出。
- 可行性:算法是可执行的,算法描述的操作是可以通过已经实现的基本操作执行有限次来实现。
- 输入:一个算法有0个或者多个输入。
- 输出:一个算法有一个或者多个输出。 算法设计的要求
- 正确性:1、程序不含语法错误。2、对于几组输入数据能够得出满足要求的结果。3、对于精心挑选、典型、苛刻且带有刁难性的几组输入数据能够的出满足要求的结果。4、对于一切的合法输入都能得出满足要求的输出结果。
- 可读性:算法应利于他人理解,且晦涩难懂的算法不利于调试。
- 健壮性:1、当输入非法的数据时,算法能够恰当的做出反应或进行相应的处理。2、处理出错的方法不应是中断程序的进行,应当是返回一个表示错误或错误性质的值,以便于在更高的抽象层次进行处理。
- 高效性:花费尽量少的时间和尽量低的存储要求。