一维数据结构是条线
二维数据结构是个面
三维数据结构是个立方体
四维数据结构带时间

数组

在操作系统中数组的特性为

1:存储在物理空间上是连续的。
2:底层的数组长度是不可变的(js中之所以能随意修改数组的长度,是因为js做啦数据优化)
3:数据的变量,指向了数组第一个元素的位置

底层数组长度不可变,那底层是如何添加与删除的

假设当前的数组的长度为8,此时需要网数组中添加一个新数据,底层会新建一个16位长度的数组,将之前的长度为8的数组中的数据拷贝过来,然后将新数据添加进该数组。当为删除时,假设此时删除数组索引为5的数据,那吗索引为5之后的数据到最后一位数据会往前挪,因为存储在物理空间上是连续的。

优点:查询性能好,指定查询某一个位置,

缺点:

1:因为空间必须是连续的,所以如果数据比较大,当系统的空间碎片较多的时候,容易存不下。(空间碎片:何为空间碎片,当数组中出现空值,导致数组不是连续的,这个空值为空间碎片,如果系统没有清除掉,那吗新数据就存不下,举个例子,一个数据组的长度为10,之中有三个不连续的空值,当存入三个新数据,此时会存不进去,因为此时系统中已经存入数组的长度为10,包括啦空值,系统整理空间碎片会很慢,大概是这,需要操作系统原理)
2:因为数组的长度是固定的,所以数组的内容难以被添加和删除。

  1. const arr = [1,2,3,4,5,6];
  2. const arr2 = new Array(6)
  3. //前提是知道数据有多少位 第二种方法会优于第一种方法,
  4. // 当数据固定且不会添加与删除,第一种优于第二种