1.2 算法设计的一般过程
视频讲解
算法是解决问题的方案,由于实际问题千奇百怪,因而制定出的解决方案也将千差万别。所以,算法的设计过程是一个灵活且充满智慧的过程,它要求设计者针对具体的问题设计出适合该问题的解决方案,可以说,这是一个智者的创造过程。
那么,在设计算法的时候,一般应遵循哪些步骤呢?
1.充分理解要解决的问题
这一步是至关重要的。如果设计者没有充分理解所要解决的问题,毫无疑问,设计出的算法定是漏洞百出。在设计算法的时候,一定要先搞清楚算法要求处理的问题、实现的功能、预期获得的结果等。这是设计算法的切入点,也是设计者必备的技能。
2.数学模型拟制
简单地说,数学模型就是对实际问题的一种数学表达,是数学理论与实际问题相结合的一门科学。它将现实问题归结为相应的数学问题,并在此基础上利用数学概念、方法和理论进行深入分析和研究,从而从定性或定量的角度来刻画实际问题,并为解决现实问题提供精确数据和可靠指导。
算法设计时,首先要根据问题的描述,建立符合要求的数学模型,并设计相关的约束条件等。
3.算法详细设计
算法详细设计指的是把算法具体化,即设计出算法的详细规格说明。这种规格说明的作用类似于其他工程领域中工程师经常使用的工程蓝图。
在算法详细设计阶段,要选择算法的设计策略,并确定合理的数据结构。显然,算法设计策略的选择关乎全局;同样,数据结构的选择对于算法的设计和分析也很重要,如果选择不当,将影响算法的性能。
4.算法描述
根据前三部分的工作,采用描述工具将算法的具体过程描述出来。
5.算法思路的正确性验证
通过对一系列与算法的工作对象有关的引理、定理和公式进行证明,来验证算法所选择的设计策略及设计思路是否正确。
6.算法分析
简单来讲,算法分析是对算法的效率进行分析,主要分析时间效率和空间效率。其中,时间效率显示算法运行的速度有多快,空间效率显示算法运行时需要的存储空间有多大。相比而言,人们关注更多的是算法的时间效率。
7.算法的计算机实现和测试
采用某种程序设计语言来实现算法,并在计算机上进行运行和测试,其目的有两个:①对算法实现代码的正确性进行验证;②对所要解决的问题进行求解,这也是算法设计的最终目的。
8.文档资料的编制
撰写算法的整个设计过程,存档。