算法
上章学习了数据结构,了解了一些相关概念以及数据结构的定义,我们了解到数据结构通常与算法是分不开的,没有算法的数据结构犹如演双簧少了一个人,失去了他的乐趣,本章开始学习算法。(没错,要有难度了,做好准备!)
首先来看算法的定义:
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
我们为什么学习算法呢?假设我们让计算机计算1+2+3+4+…+99+100的值,大多数人首先想到的程序是用1+2=3,3+3=6,6+4=10…这种方法循环100次,这些循环,看似对于计算机来说微不足道,但如果要加到上亿呢?但应用等差数列的求和算法后,我们却可以更高效率的得出计算结果,就算加到上亿,也不过是瞬间的事,算法可以极大的提升程序运行的效率,更快,更高效的实现我们的目标。计算机是死的,但人是活的,对于给定的问题,我们要灵活选择合适的算法,以更高效的解决问题。
在算法定义中,提到了指令,指令能被人或计算机等计算装置代替,它可以是计算机指令,也可以是我们平时的语言文字。每条指令表示一组操作,每一个操作都完成特定的功能,这就是算法。
算法的特性
算法具有五个基本特性:输入、输出、有穷性、确定性和可行性。
输入输出