JavaScript数据结构与算法启蒙

导读:本篇文章讲解 JavaScript数据结构与算法启蒙,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

JavaScript数据结构与算法

我们经常会听到数据结构与算法这个东西,或者说是,大家总会听到算法这个词,而且打代码的大家都知道算法的重要性,它不仅决定我们的薪资,而且决定我们的编程思维高度,从这篇文章开始,我会带着用JavaScript走一遍数据结构与算法

1. 什么是数据结构与算法

数据结构与算法,是一句话,它由三个词组成

  1. 数据
  2. 结构
  3. 算法

这三者是紧密相连的,缺一不可,所以大家才会说数据结构与算法,那么我们拆分三部分,来让大家彻底理解

2. 数据

数据:数据由数据元素、数据对象、数据项构成

  1. 数据元素:数据的基本单位,也称为结点或者是记录
  2. 数据对象:相同特性的数据元素的集合,是数据的一个子集
  3. 数据项:独立含义的数据的最小单位

我们知道了概念,但是可能太过抽象,大家还是不理解,这个给大家一个例子
在这里插入图片描述
这个一张人员表

  • 张三这一行就是一个数据元素
  • 整个人员表就是一个数据对象
  • 姓名,性别,学号就是数据项

好了,我们知道什么是数据了,那么,数据到底是干什么用的呢?

数据的目的:存储
存储的目的:后期的再利用

嗷~~原来是这样!
这回大家应该真正了解什么是数据了,也知道用途了

那么,我们存储数据,是不是应该有些方式呢?诶!!就是结构

3. 结构

我们要选取一种好的方式来存储数据

简单的数据,我们可以用变量或者是数组对数据进行存储

但是一个复杂的数据呢?它里面不仅有数据,每个数据之间还有一定的关系

这个时候我们就不能用简单的数据存储了

我们无法用一个数组来体现出数据之间的逻辑关系,我们后期数据调用的时候就会出问题了

所以,数据结构的主要作用就是:阐述关系

结构:简单的理解就是关系,不同的数据元素之间暴不是独立的,而是存在特定的关系

结构分为:逻辑结构和物理结构

逻辑结构:简单理解为关系结构,类似于七大姑八大姨的感觉

那么,我们有多少种逻辑结构呢?

  • 集合结构::元素同属于一个集合,它们之间没有什么特殊的关系,就是单纯住在一起
    在这里插入图片描述
  • 线性结构:数据关系是一对一,是一种有序数据的集合;除了第一个和最后一个数据元素之外,其它数据都是首尾相接的
    在这里插入图片描述
    四个特点:
    1.必存在一个第一个元素
    2.必存在最后一个元素
    3.除最后一个元素外,其它数据元素均有一个唯一的后续
    4.除第一个元素外,其它数据元素均有一个唯一的前驱
    数组就是一个线性结构,栈,队列
  • 树形结构:数据元素是一对多的关系
    在这里插入图片描述
  • 图形结构:多对多
    在这里插入图片描述
    那么物理结构呢

物理结构:数据元素存储到计算中的存储器。是对于内存而言的 数据的存储结构应该正确的反应数据元素之间的逻辑关系

  • 顺序存储
    在这里插入图片描述
  • 链式存储
    在这里插入图片描述

4. 数据结构总结

OK,到这里大家知道什么是数据了,知道什么是结构了
那么,我给大家一个例子,感受一下

有一个渣男,叫做A,他有一个女朋友B,还有一个女朋友C、一个女朋友D
我们现在要进行分析
A、B、C、D是四个人,是不是就是四个数据
然后这四个人,是不是有一些关系,是不是就是结构

我们画图可以清晰明了
在这里插入图片描述
哦!是不是清晰明了,这就是我们数据与结构的意义!
假如关系更乱,我们依旧可以进行分析
比如,B有还有男朋友E,C也有男朋友F,E和C还有关系
那么我们还是可以分析出来
在这里插入图片描述
当然,这就是个例子,就是想告诉大家数据和结构的作用
在这里插入图片描述

我们以后处理问题的时候就要分析,它是什么结构,然后才能去解决问题

5. 算法

其实算法,我没有必要单拿出来说了,相信大家到这里应该也猜到算法的作用了

当我们分析出数据和结构之后,去解决问题,解决问题的方法,就是算法

所以我们可以说

程序=数据结构+算法

总结

今天就是算法的启蒙啦,之后我会为大家逐个讲解各种数据结构,并且用力扣题做练习

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/79710.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!