什么是数据结构

在计算机中,数据存储于内存之中,而决定了数据在内存中存放的顺序以及位置关系的就是数据结构。可以将他看作是一种对数据的存放的一种规定。

什么是数组

数组是基础的数据结构之一,它是一种线性结构的数据结构。
image.png

如上图所示,Bule、Yellow、Red作为数据存储在内存中,其中a是数组的名字,后面的[]中的数字表示该数据是数组中的第几个数据,该数字也就是数组下标,数组下标通常从0开始。比如Yellow a[1],就是数组的的第二个数据。

读取数据

从图中可以看出,数组的数据在内存中是连续存放的。所以每个数据的内存地址都可以通过数组下标算出,我们就可以借此直接访问目标数据,也就是随机访问。
比如我们想访问Red,那么使用a[2]就可以直接访问。

增加数据

由于数组是连续的存储空间,如果是往数组末尾添加数据,那么只要保证数组末尾有足够的存储空间就可以直接添加。
但是,想要在任意的指定位置添加数据就比较复杂,下图尝试将Green添加到第二个位置上,也就是原来Yellow所在的位置。

  • 首先,在数组的末尾确保所需的存储空间
  • image.png
  • 将第二个位置后面的数据依次往后移
  • image.png
  • 最后将Green放入腾出来的空位置中
  • image.png
  • 添加完成后的数组
  • image.png

删除数据

同添加数据一样,将指定位置的数据删除以后,由于要保证数组的数据的连续性

  • 首先,将指定的数据删除
  • image.png
  • 然后将后面的数据依次向前移动
  • image.png
  • 最后再删除末尾多出来的空间
  • image.png

总结

数组用一块连续的内存空间,来存储相同类型的一组数据,最大的特点就是支持随机访问,时间复杂度为O(1),但插入、删除操作也因此变得比较低效,平均情况时间复杂度为 O(n)。适用于读操作多,写操作少的场景。

参考:武培轩:什么是数组?https://www.cnblogs.com/wupeixuan/p/12289387.html