C语言从入门到精通(第6版)
上QQ阅读APP看书,第一时间看更新

2.1.2 算法的优劣

衡量一个算法的好坏,通常要从以下几个方面来分析。

正确性:指算法应满足具体问题的要求,即对任何合法的输入,算法都会得出正确的结果。

可读性:指算法被理解的难易程度。一个算法可读性的好坏十分重要,如果一个算法比较抽象,难以理解,那么这个算法就不易于进行交流和推广使用,其后续修改、扩展、维护都十分不方便。因此在编写算法时,要尽量将该算法写得简明、易懂。

健壮性:一个程序完成后,运行该程序的用户对程序的理解各有不同,并不能保证每一个人都能按照要求进行输入。健壮性就是指当输入的数据非法时,算法也会做出相应判断,而不会因为输入的错误造成瘫痪。

时间复杂度与空间复杂度:时间复杂度指算法运行所需要的时间,空间复杂度指算法运行所需要的存储空间大小。不同算法具有不同的时间复杂度,当一个程序较小时,不易感受到时间复杂度的重要性;但当一个程序非常大时,时间复杂度会变得非常关键。因此,如何写出更高效的算法,一直是算法优化的核心目标。随着计算机硬件的发展,空间复杂度已经不再显得那么重要。