数据结构和算法(第 1 章):什么是数据结构和算法

不知道你有没有这样的疑惑?为什么一说数据结构或者算法,它们总是会同时出现,这不应该是两门课吗?为什么要整合到一起呢?

接下来我们就带着问题去了解一下数据结构和算法之间的关系。

一、数据结构和算法之间的关系

什么是数据结构?什么是算法?

你去百度肯定能得到一堆结果,但这些搜索出来的结果根本就不是人能看懂的。所谓定义就是把所有人能看懂的问题说成谁也看不懂的词。

其实,这样是没办法的事。为了定义的明确和严谨,就得加很多限制条件,这样就不会让定义模棱两可,但是这样做的结果就是谁也看不懂。

下面我们就试着还原数据结构和算法最本质的含义,能让所有人都理解的概念。

数据结构是指一组数据的存储方式。

算法是指操作这组数据的一种方法。

举个例子:

图书馆的藏书一般是根据书籍的类别和编号进行存放,这种存放方式就是数据结构。

那我们如何来找到其中的一本书呢?有很多种办法,你可以从进门开始一本一本往后找。也可以按照书籍的类别和编号,是计算机、人文、科学、文学、经济学。。。来定位书架,然后再依次查找。这种查找书籍的方法就是算法。

接下来就可以回答我们开头提的问题了,为什么一说数据结构或者算法,它们总是会同时出现呢?

这是因为,数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的数据结构之上。 因此,我们无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构。

二、数据结构的分类

数据结构从大的层面可分为逻辑结构物理结构。逻辑结构是指数据元素之间的关系。物理结构是指数据在磁盘上存储的方式。

逻辑结构

  • 集合结构

  • 线性结构

  • 树形结构

  • 图形结构

物理结构

  • 顺序存储

  • 链式存储

三、代码实现

本质上学习数据结构和算法是可以忽视语言的,因为所有的编程语言都能实现。但是这里强烈建议使用 C语言 进行算法实现,因为 C语言 可以让你更深入的理解数据在内存中是如何进行存储的。当你对 C语言 有一定的理解之后,你就会发现其他都是什么辣鸡,只有 C语言 写才是最爽的, C语言 永远滴神~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章