上海嘉会医院官网:2.6.1 正确性

来源:百度文库 编辑:中财网 时间:2024/04/28 02:21:43

2.6 算法设计的要求

刚才我们谈到了,算法不是唯一的。也就是说,同一个问题,可以有多种解决问题的算法。这可能让那些常年只做有标准答案题目的同学失望了,他们多么希望存在标准答案,只有一个是正确的,把它背下来,需要的时候套用就可以了。不过话说回来,尽管算法不唯一,相对好的算法还是存在的。掌握好的算法,对我们解决问题很有帮助,否则前人的智慧我们不能利用,就都得自己从头研究了。那么什么才叫好的算法呢?

嗯,没错,有同学说,好的算法,起码要是正确的,连正确都谈不上,还谈什么别的要求?

2.6.1 正确性

正确性:算法的正确性是指算法至少应该具有输入、输出和加工处理无歧义性、能正确反映问题的需求、能够得到问题的正确答案。

但是算法的“正确”通常在用法上有很大的差别,大体分为以下四个层次。

1.算法程序没有语法错误。

2.算法程序对于合法的输入数据能够产生满足要求的输出结果。

3.算法程序对于非法的输入数据能够得出满足规格说明的结果。

4.算法程序对于精心选择的,甚至刁难的测试数据都有满足要求的输出结果。

对于这四层含义,层次1要求最低,但是仅仅没有语法错误实在谈不上是好算法。这就如同仅仅解决温饱,不能算是生活幸福一样。而层次4是最困难的,我们几乎不可能逐一验证所有的输入都得到正确的结果。

因此算法的正确性在大部分情况下都不可能用程序来证明,而是用数学方法证明的。证明一个复杂算法在所有层次上都是正确的,代价非常昂贵。所以一般情况下,我们把层次3作为一个算法是否正确的标准。

好算法还有什么特征呢?

很好,我听到了说算法容易理解。没错,就是它。