算法
严蔚敏《数据结构(C语言版)(第2版)》一书中,对算法的定义是这样的:
算法(Algorithm)是为了解决某类问题而规定的一个有限长的操作序列。
(额,反正我是看不懂。)
简单来说,就是“解决问题的办法”。
衡量算法的基本标准
正确性。
得到正确的结果,例如, 1+1始终等于2。反面是:1+1 = 3。
可读性。
人们可以理解。 例如,01010010101这样的机器码,人们就无法理解,而python程序print('hello')的意思就是要打印hello字符的意思。
健壮性。
对非法数据作出处理。在python中遇到非法的数据,比如收到一个除数等于0,要主动处理错误,或抛出错误,例如:
def div(a, b):
if b == 0:
raise ZeroDivisionError
return a / b
高效性。
包括时间和空间两个方面。时间高效是指算法的执行效率高,执行所用时间少;空间高效是指内存的占用小。它们两者分别用时间复杂度和空间复杂度来衡量。时间复杂度和空间复杂度是衡量算法的两个主要指标。