JS数据结构&算法学习——概念

267 阅读3分钟

「这是我参与2022首次更文挑战的第4天,活动详情查看:2022首次更文挑战

大家好,我是猪痞恶霸,入门未满一年的带学生一枚,请多多关照。

数据结构

概念

  • 在计算机中,存储和组织数据的方式
  • 通过了解数据结构来以高效方式来对数据进行存储和组织

应用

我们通过生活中的应用来阐释数据结构

  1. 插队的车库

    我开着我的小毛驴准备停在商城的停车场,但是现在只有一个车位,而车位的后面还有一辆车,这个时候就应用到了栈的概念,先进后出,只有这辆车退出来我才能开到那个位置。

  2. 银行的保险库

    银行的保险库以特定的方式来存储物品和财产,可以是以存放人的姓名首字母排列,也可以按照存放财产的多少来排列,然后在查找的过程中通过查找的复杂性来体现排列的情况和特点,这体现了计算机中的数据结构。

  3. 长长的队伍

    在我们生活中常常会进行排队,在排队的过程中头出尾进,这就是数据结构中的队列。

  4. 等等

综上所述,数据结构所考虑的在于应对不同场景下的存储数据的方式以及相对查找等操作效率的体现。

常见数据结构

不同种类的数据结构的应用场景不同,对应不同的场景其性能也不同,在真正使用的过程中还是要看开发的实际需求来选择。

  1. 数组:数组是可以再内存中连续存储多个元素的结构,在内存中的分配也是连续的
  2. 栈:栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作
  3. 队列:队列是一种线性表,能在线性表的两端端操作,队首允许出去,队尾允许进来
  4. 链表:链表是物理存储单元上非连续的、非顺序的存储结构,和数组相比是非连续的
  5. 树:由n(n>=1)个有限节点组成一个具有层次关系的集合
  6. 堆:可以被看做一棵树的数组对象

算法

概念

  • 一套装修方案,如果说一个任意语言的程序比作为房子的话,算法就是一种装修方案
  • 用何种装修的方式也就是算法,来优化我们的房子也就是程序
  • 不依赖于语言

应用

  1. 泡泡在水中的行为

    众所周知的冒泡排序是初学者常用的算法之一,比较相邻两个泡泡,如果第一个比第二个大,那么交换两个泡泡,对每一对相邻的泡泡做着相同的事情,并直到没有任何一个泡泡需要进行交换为止,而泡泡就是需要比较的元素,同时这也体现了算法的,输入&输出