1.1.1什么是算法
算法是求解问题的一系列步骤,用来将输入数据转换成输出结果,如果每一个算法对其每一个输入实列都能输出正确的结果并停止,则称它是正确的。一个正确的算法解决了给定的求解问题,不正确的算法对于某些输入来说根本不会停止,或者停止时不是预期的结果。
算法设计满足以下几个目标
1.正确性:要求算法能够正确的执行预先规定的功能和性能要求。这是最重要也是最基本的要求。
2.可使用性:要求算法能够很方便的使用,这个特性也叫用户友好性。
3.可读性:算法应该是易与人的理解,也就是可读性好。算法的逻辑应该是清晰的,简单的和结构化的。
4.健壮性:要求算法具有很好的容错性,即提供异常处理,能够对不合理的数据进行检查,不经常出现异常中断或者死机现象。
5.高效率与地存储量的需求:通常算法效率指的是算法执行的时间。对于同一个问题如果有多种算法可以求解,执行时间短的效率高。算法存储量指的是算法执行过程中所需的最大存储空间。效率与低存储量都与问题的规模有关。
算法具有以下五个特性:
(1)有限性:一个算法必须总是(对任何合法的输入值)在执行性有限步后结束,、且每一步都在有限的时间内完成。
(2)确定性:算法种的每一条指令都必须有确切的含义,不会产生二义性。
(3) 可行性:算法中的每一条运算都必须是足够基本的,也就是他们在基本的原则上都能精确的执行甚至人们用纸笔做有限次运算就能完成。
(4)输入性:一个算法有零个或者多个输入。大多数算法的输入参数是必要的则对于一些简单的算法,如计算1+2的值,不需要输入任何参数因此算法的输入可以是零个。
(5)输出性:一个算法有一个或者多个输出。算法用于某种数据处理没有输出这种算法是没有任何意义的,这些输出与输入有着某些特定关系的量。