算法的特点
嗯,算法具有五个基本特征:输入、输出、有穷性、确定性和可行性。
输入
算法具有零个或多个输入。
虽然大多数算法都需要输入参数。 但是,如果打印" I love fishc.com ",则可能不需要参数。
void print () printf (“ilovefishc.com n”); }
输出算法至少有一个或多个输出。
算法一定会输出。 不需要输出。 那么,用这个算法做什么?
输出格式可以以打印格式输出,也可以返回一个值或多个值等。
有穷性
指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成。
是永远不会结束的算法。 我们想让他做什么?
确定性
算法的每一个步骤都具有确定的含义,不会出现二义性。
算法在一定条件下,只有一个执行路径,同一输入只有唯一的输出结果。
算法的各个步骤应该没有模糊地正确定义。
可行性
算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限次数完成。
算法设计要求
正如我刚才所说,算法不是唯一的。
也就是说,同一问题有多种问题解决算法。
这可能让常年只有标准答案问题的童鞋失望了。 他们多么希望有标准的答案存在。 只有一个是正确的,背下来就万事如意了。
但是,我们的算法不会改变。 还记得我刚才说的高斯童鞋吗?
世界上需要几种这样的鱼油,但那有几种牛折断的算法。
不仅仅是算法,我们还学习了一些好的算法,有助于解决问题!
正确程度
算法的正确性是指算法至少在输入、输出、加工处理上没有模糊性,能准确反映问题的需要,得到问题的正确答案。
大体分为以下四个层次:
算法中没有语法错误。 算法可以生成对合法输入满足要求的输出。 算法可以生成对非法输入满足规格的说明。 算法程序故意对较难的测试输入具有满足要求的输出结果。 容易阅读
算法设计的另一个目的是让它容易阅读、理解和交流。
我写代码的目的,一方面是为了让计算机运行,另一个重要的目的是让别人容易阅读,自己以后再阅读和修改。
顽强性
如果输入数据不正确,则该算法可以进行相关联的处理,而不是产生异常、崩溃或令人费解的结果。
时间效率和存储量低
生活中,所有的男人都在寻找聪明的妻子。 她们做着温柔体贴、美丽大方、好吃的料理。
好算法就像一个好妻子,应该有时间效率高、内存量低的特点。
所以在设计算法的时候,我们应该尽量考虑这两个问题!