首页 理论教育算法评价:正确性、时间复杂度、空间复杂度《信息技术教程》

算法评价:正确性、时间复杂度、空间复杂度《信息技术教程》

【摘要】:评价算法的前提条件是这些算法都应该是正确的,在此基础上再通过时间复杂度和空间复杂度进一步评价算法的优劣。空间复杂度是指在算法执行过程中需要耗费的内存空间资源。现在,我们通过一个例子来说明算法的设计过程以及如何评价一个算法的优劣。所以这种算法最少称1次,最多要称7次。算法分析的目的在于选择合适的算法并改进算法。

算法设计过程中经常会遇到这种情况,即同一个问题可以用不同的算法进行解决,而这些算法在运行效率、空间资源耗费等方面存在着差异。根据这些差异我们可以评价一个算法的好坏。评价算法的前提条件是这些算法都应该是正确的,在此基础上再通过时间复杂度和空间复杂度进一步评价算法的优劣。

时间复杂度是指在算法执行过程中需要耗费的时间资源。为了便于比较同一问题的不同算法的运行效率,可以从算法中选取一种对于所研究问题来说是基本操作的原操作,以该基本操作重复执行次数作为算法的时间量度。

空间复杂度是指在算法执行过程中需要耗费的内存空间资源。

现在,我们通过一个例子来说明算法的设计过程以及如何评价一个算法的优劣。

【例】 一位商人有9枚银元,其中一枚略轻的是假银元,你能用天平(不用砝码)将假银元找出来吗?(www.chuimin.cn)

算法一:先从9枚银元中任取2枚放到天平上进行称量,若天平两端不平衡,则轻的那枚为假银元;若平衡,则从天平上取下一枚银元,换上另一枚银元,再称,以此类推,只要有一次称量时天平两边不平衡,就能找到假银元;如果每次称量都平衡,则剩下的最后一枚银元是假银元。所以这种算法最少称1次,最多要称7次。

算法二:将9枚银元平均分成A、B、C三组,每组3枚。第一次先比较A、B两组,如果天平不平衡,则假银元在轻的那组里,从轻的那组里任取2枚放到天平上进行比较,若不平衡,则轻的那枚是假银元;若平衡,则该组中剩下的那枚是假银元。若A、B两组相等,则假银元在C组里,从C组中任取2枚进行比较,如果不平衡,则找到假银元;若平衡,则C组中剩下的那枚是假银元。这种算法称2次就可以找到假银元,所以效率比第一种方法要高。

算法分析的目的在于选择合适的算法并改进算法。