什么是“算法”?你一看字面意思,肯定是“计算法”的缩写,尤其是“计算机计算法”。因此,该算法由计算机程序实现。
算法,英文叫Algorithm,是为了让计算机解决一个问题而设计的一套计算方法。这种计算方法的设计依赖于“数学模型”的建立。
也就是说,程序员在设计算法之前,会对实际问题进行理解和分析,总结为一个“具体的数学问题”。
算法是解决问题的计算方法。
该算法有几个特点:1 .
算法的每一步都有“明确的意义”,对算法结果的预期也是明确的。
2有贫困
算法一直算不完,也停不下来;必须有一个确定的结束条件,否则,“永远”有什么意义?
3可行
有一个笑话说,当一个人面试一个会计师时,他的算术非常快,结果是即时的,但它就是不正确。
4输入和输出
算法是用来解决问题的,源是输入,结果是输出。
再复杂的算法也是由小算法组成的。
如何设计一个算法程序?这个算法有三个要素-
数学,输入输出方法,算法步骤。
那么,如何设计一个算法呢?
首先,建立待解决问题的数学模型,将原问题转化为数学问题;
然后,将问题的“已知条件”转化为“数据”,输入数学模型;
然后通过对输入的逐步转换/处理/计算,得出结果。
最后,以期望的形式输出结果。
数据结构对算法设计至关重要。数据结构有两层含义
1表示一组存储的数据。
一系列数据可以存储在这个数据结构中。
2表示存储数据之间的特定关系。
这就是“结构”这个词的含义。学过线性代数的同学一定很清楚,结构的力量是很强大的,可以成倍的增加信息量。
数据——重要信息的价值所在。
数据结构的选择将极大地影响算法设计。合适的数据结构可以使算法设计更加高效简洁,而不合适的数据结构有时会将算法设计带入深渊,甚至使算法无法实现。
一些初学编程的朋友,在处理一些算法问题时,难免会遇到一些“感觉繁琐,却想不出什么简单的方法”的情况。这时候不妨回来看看数据结构,换一个更合适的,往往会产生前途一片光明的感觉。
数据结构是编程的基础。
初始数据结构有八种数据结构,其中四种是最常用也是最简单的。它们是:
数组(数组)
链接列表(链表)
堆栈(堆栈)
队列(队列)
因为它们的结构都是线性的,所以它们也有一个共同的名字-
“线性表”。