不知道你有没有这样的疑惑?为什么一说数据结构或者算法,它们总是会同时出现,这不应该是两门课吗?为什么要整合到一起呢?
接下来我们就带着问题去了解一下数据结构和算法之间的关系。
一、数据结构和算法之间的关系
什么是数据结构?什么是算法?
你去百度肯定能得到一堆结果,但这些搜索出来的结果根本就不是人能看懂的。所谓定义就是把所有人能看懂的问题说成谁也看不懂的词。
其实,这样是没办法的事。为了定义的明确和严谨,就得加很多限制条件,这样就不会让定义模棱两可,但是这样做的结果就是谁也看不懂。
下面我们就试着还原数据结构和算法最本质的含义,能让所有人都理解的概念。
数据结构是指一组数据的存储方式。
算法是指操作这组数据的一种方法。
举个例子:
图书馆的藏书一般是根据书籍的类别和编号进行存放,这种存放方式就是数据结构。
那我们如何来找到其中的一本书呢?有很多种办法,你可以从进门开始一本一本往后找。也可以按照书籍的类别和编号,是计算机、人文、科学、文学、经济学。。。来定位书架,然后再依次查找。这种查找书籍的方法就是算法。
接下来就可以回答我们开头提的问题了,为什么一说数据结构或者算法,它们总是会同时出现呢?
这是因为,数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的数据结构之上。 因此,我们无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构。
二、数据结构的分类
数据结构从大的层面可分为逻辑结构和物理结构。逻辑结构是指数据元素之间的关系。物理结构是指数据在磁盘上存储的方式。
逻辑结构
-
集合结构
-
线性结构
-
树形结构
-
图形结构
物理结构
-
顺序存储
-
链式存储
三、代码实现
本质上学习数据结构和算法是可以忽视语言的,因为所有的编程语言都能实现。但是这里强烈建议使用 C语言
进行算法实现,因为 C语言
可以让你更深入的理解数据在内存中是如何进行存储的。当你对 C语言
有一定的理解之后,你就会发现其他都是什么辣鸡,只有 C语言
写才是最爽的, C语言
永远滴神~