算法的一般步骤

来源:互联网 发布:淘宝助理导入tbi格式 编辑:程序博客网 时间:2024/04/29 19:11
     由于实际问题中各种各样的解决问题的方法千变万化,所以使得算法设计充满方法的灵活性和结果的多样性,但是人们在长期的实践中还是总结出解决常用问题的算法设计步骤,了解它对算法设计有很好的帮助。
     按照自顶往下的设计原则,处理实际问题的算法设计是从理解问题入手自顶往下展开的,这是对问题的理解和分析逐层深入、逐步细化的一个过程,它符合人们对问题的认识规律。设计算法首先要做的是准确理解问题的要求,即整理出算法的输入和输出,明确算法的明确要求,在此基础上逐步展开算法的设计工作。
     算法设计除了考虑实现正常的功能要求外,还必须恰当的处理可能发生的特殊情况,其中对各种可能的输入进行分析的重要工作。由于运行环境和使用者的不确定性,一个算法的进行很可能会遇见一些不正常的输入,此时算法应该能够妥善处理它,从而保证算法能够正常运行。为此,需要对算法运行的所有可能遇到的输入进行预测。例如一个正整数输入的算法,同时还要合理的处理输入的小数和负数的情况。一个要求输入字符的算法,应当能妥善处理输入为数字的情况,等等。对可能发生的各种情况分析的越充分,所设计的算法就越完善,算法的效率也更高。
     由于实际问题的复杂性,有些问题无法求得精确解,有些问题求得精确解付出的时间太长。因此,在设计算法时需要根据问题要求和时间代价,计算机系统的条件等因素,确定问题解得形式和精度,使得设计的算法更具合理性。
     正因为数据结构与算法之间的紧密联系,要使所设计的算法更高的效率,必须先确定数据结构,包括抽象问题的数据模型和确定它在计算机中的表现形式,即确定数据的逻辑结构和存储结构。当然也要确定问题处理过程中所用的辅助数据结构。算法设计要针对确定的数据结构来展开。
     初始设计的算法难免有或大或小的逻辑错误,而这些逻辑错误是无法由计算机检查出来的。为了检查出算法中可能出现的逻辑错误,设计者要设计一组“输入值”,通过这组输入值“执行”算法,尽可能的发现算法中的逻辑错误,这就是跟踪算法。
     判断所设计的算法是否达到目标,除了检查算法执行的结果是否和预计的一致以外,还要检查算法的效率是否满足
问题的需求,也就是要分析算法的时间效率和空间效率,算法设计过程可能在这一步和确定解的要求之间重复,知道算法效率满足要求为止。分析算法的时间效率和空间效率时,分别以算法的时间复杂度和空间复杂度来衡量。
原创粉丝点击