算法的设计和程序的实现,我觉得应该分为以下四个步骤:
1、必须明确人工解决该问题的具体步骤。此步十分重要,因为简单来说计算机程序就是将人的思想转换成机器运行的一种媒介,如果自己不能将解决问题的步骤十分清晰的表达出来,也就不可能会有计算机的解法。
2、数据结构会直接影响程序的复杂度和运行的效率。良好的结构应该能够将问题给定的条件尽可能的封装,使得程序中的处理尽量简单,而不是充满了晦涩难懂的微妙的逻辑判断处理,同时程序的简洁性为性能优化奠定了很好的基础。
3、寻找等价关系。问题的解决方式有时不必按照描述中按部就班地实现,其实我们的最终目的是要达到算法要求的结果,因此发现并利用算法中的一些等价关系有时能够极大的简化问题的算法设计,并减少运行时间。
4、效率是最后需要关注的问题。没有正确的结果,再高的效率也是徒劳的。因此所有算法的调优应该在保证正确结果的基础之上。另外以上三步做好之后,最终的效率调整应该都是技巧上面的问题,而不应该涉及到流程方面的改动——否则需要再研究新流程的细节来设计测试用例。
1、必须明确人工解决该问题的具体步骤。此步十分重要,因为简单来说计算机程序就是将人的思想转换成机器运行的一种媒介,如果自己不能将解决问题的步骤十分清晰的表达出来,也就不可能会有计算机的解法。
2、数据结构会直接影响程序的复杂度和运行的效率。良好的结构应该能够将问题给定的条件尽可能的封装,使得程序中的处理尽量简单,而不是充满了晦涩难懂的微妙的逻辑判断处理,同时程序的简洁性为性能优化奠定了很好的基础。
3、寻找等价关系。问题的解决方式有时不必按照描述中按部就班地实现,其实我们的最终目的是要达到算法要求的结果,因此发现并利用算法中的一些等价关系有时能够极大的简化问题的算法设计,并减少运行时间。
4、效率是最后需要关注的问题。没有正确的结果,再高的效率也是徒劳的。因此所有算法的调优应该在保证正确结果的基础之上。另外以上三步做好之后,最终的效率调整应该都是技巧上面的问题,而不应该涉及到流程方面的改动——否则需要再研究新流程的细节来设计测试用例。