前言:数据结构一般和算法说在一起,称为数据结构与算法。这个知识非常好理解,但是一些老师每天XXX的简直不知所云。所以我就想写这篇简单的教程,知识浅薄,请包涵。
什么是数据结构?
数据结构就是一些有关系的数据的集合,有顺序表,链表,栈,队列,树,图。等这几种结构。
什么是算法?
算法就是解决问题的一种方法,解决一个问题的算法有很多,但总有一个算法比其他的方式好,要么节省时间,要么效率高。例如从1加到100,你当然可以来一个for循环来循环100次。你也可以利用高斯的方法(1+100)*50来计算,谁优谁劣一目了然吧。
为什么要学习数据结构与算法?
如果你以后希望从事和编写代码有关的工作的话,数据结构与算法是必备的技术,为什么?举个例子。你遇到了一个项目该怎么去实现完成?如果你没有学过数据结构就会想我是用数组呢还是用if else呢?如果你学过数据结构就会想我是用栈呢还是用二叉树和图呢? 这就暴露出第一个本质:解决问题的方式。 if else 谁都会。
找到解决的方式之后,接下来你该面对的问题是我该怎么去用代码实现。这是一个很重要的问题,你解决问题的方式就是算法,为什么要学习算法呢?还是以从1加到100为例。同样一个问题,
按照高斯同学的算法,时间复杂度是1,按照for循环的算法,时间复杂度是100.那如果是从1加到一千,一万,一亿呢?人家高斯同学的时间复杂度还是1,而for循环的则是一千,一万,一亿.......这就暴露出来第二个本质:解决问题的方式(算法)的好坏 如果你不介意算法的好坏那么人家一台服务器能够完成的事情,你需要好几台服务器,这时你的主管就会抓着头发说“oh my God”
这就是学习数据结构与算法的本质了,具体代码该怎么打,下回见。