JavaScript数据结构与算法
我们经常会听到数据结构与算法这个东西,或者说是,大家总会听到算法这个词,而且打代码的大家都知道算法的重要性,它不仅决定我们的薪资,而且决定我们的编程思维高度,从这篇文章开始,我会带着用JavaScript走一遍数据结构与算法
1. 什么是数据结构与算法
数据结构与算法,是一句话,它由三个词组成
- 数据
- 结构
- 算法
这三者是紧密相连的,缺一不可,所以大家才会说数据结构与算法,那么我们拆分三部分,来让大家彻底理解
2. 数据
数据:数据由数据元素、数据对象、数据项构成
- 数据元素:数据的基本单位,也称为结点或者是记录
- 数据对象:相同特性的数据元素的集合,是数据的一个子集
- 数据项:独立含义的数据的最小单位
我们知道了概念,但是可能太过抽象,大家还是不理解,这个给大家一个例子
这个一张人员表
- 张三这一行就是一个数据元素
- 整个人员表就是一个数据对象
- 姓名,性别,学号就是数据项
好了,我们知道什么是数据了,那么,数据到底是干什么用的呢?
数据的目的:存储
存储的目的:后期的再利用
嗷~~原来是这样!
这回大家应该真正了解什么是数据了,也知道用途了
那么,我们存储数据,是不是应该有些方式呢?诶!!就是结构
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