算法初步
假设我让你计算1+2+3+...+5000等于多少,有两种常见的方法:
1、按部就班累加
2、使用公式,(首项+末项)*项数/2
假设你使用第一种方法从头到尾不出错的计算,可能也需要几个小时才能计算出来,但是如果你使用公式可能不到一分钟就得出了正确答案。
这就是我要说的算法,走最短的路,才能最快到底终点。
算法有5个特性:
1、需要足够的情报,就像上面的(首项+末项)*项数/2 这个公式一样,你需要知道首项、末项、项数才能正确的计算(需要足够的情报也可称为“输入项”)
2、有穷,既你的算法必须每个步骤都有有限的运行时间,不能无限地运行下去。
3、确定,使用每个不同的情报运行的算法的结果都不一样,但每个情报一定对应一个固定的结果。就像1的平方能也只能为1 2的平方能也只能为4
4、可行,算法一定要是可行的。
5、输出,算法的目的就是要得出结果,没有输出就不叫算法。
在本网站的算法教程或实例中,为了使得受用面更广,我们尽量采用C语言或者伪代码来表达,尽量减少C++和Java的比重。