滴水逆向联盟

标题: 算法的好坏你知道吗? [打印本页]

作者: 夺命书生    时间: 2014-11-11 09:46
标题: 算法的好坏你知道吗?
算法的好坏评测也被,称为算法的性能分析,那么如何评价一个算法的好坏呢?

由于针对一个问题可能会有不同得算法去解决,不同的算法思路不同,有的执行起来
会很慢,效率很低,有的执行起来会很快,效率自然会很高,这样就出现了算法的好
坏之分,如何衡量一个算法的好坏,要通过以下几方面来分析。

《1》 正确性
算法能够满具体问题的需求,即对任何合法的输入,算法都会得出正确的结果。

《2》可读性
算法创建后由人来阅读,使用,理解,使用及其修改,所以可读性的好坏直接的
影响了算法的好坏,如果一个算法设计的思想很多,人就会糊涂,那么这个算法
就不能够,更好的交流和推广使用,自然对其修改,扩展,维护就更不方便,
所以要提高算法的可读性,让其简明易懂。

《3》健壮性
一个程序编译完成后,运行该程序的用户对程序的对程序的理解各有不同, 并不保证
每一个人都能够按照要求去输入,健壮性就是指对非法输入的抵抗能力,当输入的数据
非法时,算法能够识别并作出处理,而不会因为错误的输入,从而产生错误的动作,或
造成程序的瘫痪。

《4》时间复杂度与空间复杂度
时间复杂度简短的说就是,算法运行所需要的时间,不同的算法具有不同的时间复杂度,
当一个程序较小的时间我们感觉不到时间复杂度的重要,当一个程序很大的时候, 就会
察觉到时间复杂度,其实非常的重要,所以如何写出更高速的算法一直是算法不断改进
的目标,空间复杂度,是指算法运行所需占用的储存空间的多少,随着计算机硬件的发展
空间复杂度,已经显得不是那么的重要。

时间复杂度和空间复杂度,是评测算法好坏的重要指标,所以在编写算法的时候要充分考虑
尽量的减少时间复杂度和空间复杂度。


作者: OneTime    时间: 2014-11-11 11:11
我觉得算法只是编程的一种技巧吧。
作者: 大灰狼    时间: 2014-11-13 09:04
经典的算法都是数学大师们的杰作,我们只需要拿来主义就好啦




欢迎光临 滴水逆向联盟 (http://dtdebug.com/) Powered by Discuz! X3.2