什么是“算法”算法,一看字面就知道,肯定是“计算方法”的简称啦,特指“计算机的计算方法”,所以,算法是由电脑程序来实现的。
算法,英文叫Algorithm,就是为了让电脑解决一个问题而设计出来的一套计算方法,这套计算方法的设计是依靠“数学模型”的建立。
也就是说,程序员在设计算法之前,会将实际问题理解分析,归纳为一个“具体的数学问题”。
算法是解决问题的计算方法
算法有这么几个特征1 确定
算法的每一个步骤都有“明确的意义”,对于算法结果的预期也是明确的。
2 有穷
算法不能一直算,停不下来是不行的;要有一个明确的结束条件,要不然算到“天荒地老”还有什么意义呢?
3 可行
有个笑话说一个人面试会计师,算数特别快瞬间出结果,但是就是算得不对。
4 输入输出
算法就是用来解决问题的,问题的来源就是输入,问题的结果就是输出。
再复杂的算法也是由一个个小算法组合成的
怎么设计一个算法程序呢算法有三个要素——
数学模型,输入输出方法,算法步骤。
所以说,怎么设计一个算法呢?
首先,先对要解决的问题建立一个数学模型,把原问题化为数学问题;
然后,将问题的“已知条件”化为“数据”输入到数学模型中;
再然后,通过对输入一步一步的转化/处理/计算,得到结果;
最后,把结果按照希望的形式,输出出来。
数据结构对算法设计至关重要数据结构有两层含义——
1 代表了储存数据的集合
一系列的数据能够储存在这个数据结构中。
2 代表了储存的数据之间有特定的关系
这正是“结构”一词的意义,学过线性代数的同学一定很清楚,结构的力量很强大,能让信息量成倍地扩大。
数据——重要的信息价值所在
数据结构的选择会极大地影响算法设计合适的数据结构能让算法设计时更高效更简洁,而不合适的数据结构有时候会把算法设计带入深渊,甚至无法实现算法。
有些初学编程的朋友在处理一些算法问题时,难免会遇到一些“感觉很繁琐,但又想不出什么简单的方法”的情况,这时不妨回来看看数据结构,换一个更适合的数据结构,常常会有柳暗花明之感呢。
数据结构是编程的基础中的基础
初阶数据结构数据结构共8种,有4种最常用也最简单,它们是:
数组(Array)
链表(Linked list)
堆栈(Stack)
队列(Queue)
由于它们的结构都是线性的,它们还有一个共同的名字——
“线性表”。