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

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

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

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

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

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

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

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

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

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

举个例子:

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

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

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

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

二、数据结构的分类

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

逻辑结构

  • 集合结构

  • 线性结构

  • 树形结构

  • 图形结构

物理结构

  • 顺序存储

  • 链式存储

三、代码实现

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

相关文章

背景:计算机内部用补码表示二进制数。符号位1表示负数,0表...
大家好,我们现在来讲解关于加密方面的知识,说到加密我认为不...
相信大家在大学的《算法与数据结构》里面都学过快速排序(Qui...
加密在编程中的应用的是非常广泛的,尤其是在各种网络协议之...
前言我的目标是写一个非常详细的关于diff的干货,所以本文有...
对称加密算法 所有的对称加密都有一个共同的特点:加密和...