跳转至

数组理论基础

约 333 个字 预计阅读时间 1 分钟

数组是一种在内存中有着连续空间的数据结构,可以使用下标访问,但是缺点是定长,在C++中一般情况下都需要在创建数组的同时给定数组空间

因为数组是定长的,所以数组的空间是不可以一旦创建就不可以被随便更改,也导致数组中一旦存储了数据就不可以删除,只能通过覆盖行为达到间接删除,而挪动数据就需要注意防止覆盖原数据的问题,一般挪动数据分为三种情况:

  1. 中间插入数据:空间足够的情况下,从最后一个数据移动,直到插入位置可以被覆盖,时间复杂度O(N)
  2. 最后插入数据,空间足够的情况下,直接在最后一个元素的位置插入数据,时间复杂度O(1)
  3. 需要移除指定位置的数据:从移除的数据的下一个位置,依次将后面的数据向前移动,时间复杂度O(N)

最后数组的下标是从0开始计算,最后一个元素的下标是数组长度-1

其他内容可以看前面基础部分的C语言数组内容